@snowdreamtech/unirtm 0.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/LICENSE +21 -0
- package/README.md +225 -0
- package/README_zh-CN.md +228 -0
- package/install.js +145 -0
- package/package.json +54 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026-present SnowdreamTech Inc.
|
|
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.
|
package/README.md
ADDED
|
@@ -0,0 +1,225 @@
|
|
|
1
|
+
# UniRTM (Universal Runtime Manager)
|
|
2
|
+
|
|
3
|
+
Inspired by [mise](https://github.com/jdx/mise) (licensed under MIT). Special thanks to jdx and the mise community for the great ideas.
|
|
4
|
+
|
|
5
|
+
[](https://github.com/snowdreamtech/template/actions/workflows/ci.yml)
|
|
6
|
+
[](https://github.com/snowdreamtech/template/actions/workflows/cd.yml)
|
|
7
|
+
[](https://github.com/snowdreamtech/template/actions/workflows/pages.yml)
|
|
8
|
+
[](https://github.com/snowdreamtech/template/actions/workflows/codeql.yml)
|
|
9
|
+
[](https://github.com/snowdreamtech/template/actions/workflows/ci.yml)
|
|
10
|
+
[](https://github.com/snowdreamtech/template/actions/workflows/ci.yml)
|
|
11
|
+
[](https://github.com/snowdreamtech/template/releases/latest)
|
|
12
|
+
[](https://opensource.org/license/MIT)
|
|
13
|
+
[](https://github.com/snowdreamtech/template/releases/latest)
|
|
14
|
+
[](https://github.com/snowdreamtech/template/blob/main/.github/dependabot.yml)
|
|
15
|
+
[](https://github.com/pre-commit/pre-commit)
|
|
16
|
+
[](https://github.com/snowdreamtech/template)
|
|
17
|
+
[](https://github.com/snowdreamtech/template/issues)
|
|
18
|
+
[](https://github.com/snowdreamtech/template)
|
|
19
|
+
|
|
20
|
+
[English](README.md) | [įŽäŊ䏿](README_zh-CN.md)
|
|
21
|
+
|
|
22
|
+
An enterprise-grade, foundational template designed for multi-AI IDE collaboration. This repository serves as a **Single Source of Truth** for AI agent rules, workflows, and project configurations, supporting over 50 different AI-assisted IDEs with massive multi-language support.
|
|
23
|
+
|
|
24
|
+
## đ Features
|
|
25
|
+
|
|
26
|
+
- **Multi-IDE Compatibility**: Out-of-the-box support for Cursor, Windsurf, GitHub Copilot, Cline, Roo Code, Trae, Gemini, Claude Code, and 50+ other AI editors.
|
|
27
|
+
- **Unified Rule System**: Centralized rule definitions in `.agent/rules/`. Changes propagate automatically to all supported IDEs via a secure symlink/redirect pattern.
|
|
28
|
+
- **80+ Language & Framework Rules**: Pre-configured high-quality rules from Rust, Go, TypeScript, Python to Ansible, Kubernetes, and API design.
|
|
29
|
+
- **Smart Workflows (SpecKit)**: Standardized `.agent/workflows/` commands (`speckit.plan`, `speckit.analyze`, `snowdreamtech.init`) that behave consistently across all supported environments.
|
|
30
|
+
- **Triple Guarantee Quality**: 100% code purity enforced through Pre-commit and GitHub Actions integrated quality gates.
|
|
31
|
+
- **Cross-Platform Ready**: Runs seamlessly on macOS (Homebrew/MacPorts), Linux, and Windows.
|
|
32
|
+
|
|
33
|
+
## đī¸ Section 1 â Design & Architecture
|
|
34
|
+
|
|
35
|
+
### Overview
|
|
36
|
+
|
|
37
|
+
The Snowdream Tech Template is a foundational scaffold engineered to solve the "N-IDE Fragmentation" problem. It standardizes the development environment, AI agent rules, and automation pipelines across varied platforms and languages.
|
|
38
|
+
|
|
39
|
+
**Key Capabilities:**
|
|
40
|
+
|
|
41
|
+
- Provides a **Unified Rule Engine** that governs AI behavior consistently across 50+ IDEs.
|
|
42
|
+
- Enforces **Cross-Platform Portability** through dynamically adapting POSIX shell automation.
|
|
43
|
+
- Implements a **Triple Guarantee Quality Gate** (IDE, CLI, CI) to prevent regressions.
|
|
44
|
+
- Supports **Massive Multi-Language Stacks** with modular onboarding logic.
|
|
45
|
+
|
|
46
|
+
### Architecture
|
|
47
|
+
|
|
48
|
+
```mermaid
|
|
49
|
+
graph TD
|
|
50
|
+
A["Developers & Agents"] -->|Operates via| IDE["Cursor / Windsurf / Copilot / 50+ Others"]
|
|
51
|
+
IDE -->|Reads Rules via Redirects| R1[".vscode/"]
|
|
52
|
+
IDE -->|Reads Rules via Redirects| R2[".github/"]
|
|
53
|
+
IDE -->|Reads Rules via Redirects| R3[".cline/ .trae/ etc."]
|
|
54
|
+
|
|
55
|
+
R1 -.->|SSoT Pointer| CoreRules[".agent/rules/"]
|
|
56
|
+
R2 -.->|SSoT Pointer| CoreRules
|
|
57
|
+
R3 -.->|SSoT Pointer| CoreRules
|
|
58
|
+
|
|
59
|
+
CoreRules -->|Governs| Src["Source Code"]
|
|
60
|
+
CoreRules -->|Governs| Scripts["CI/CD & Shell Scripts"]
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
### Design Principles
|
|
64
|
+
|
|
65
|
+
- **Single Source of Truth (SSoT)**: All AI rules, commands, and Git hooks live in one place. No duplicated IDE configurations.
|
|
66
|
+
- **Cross-Platform Portability**: Heavy automation logic is written in POSIX Shell, with thin wrappers for Windows PowerShell/Batch.
|
|
67
|
+
- **Triple Guarantee Quality**: Linting and formatting form an impenetrable wall, enforced at the IDE layer, pre-commit layer, and CI/CD GitHub Actions layer.
|
|
68
|
+
|
|
69
|
+
### Responsibilities
|
|
70
|
+
|
|
71
|
+
- **.agent/rules/**: Owns the definitive behavioral logic for AI agents across all supported languages.
|
|
72
|
+
- **scripts/**: Owns the cross-platform automation and lifecycle logic.
|
|
73
|
+
- **.agent/workflows/**: Owns the interactive AI commands (SpecKit).
|
|
74
|
+
|
|
75
|
+
---
|
|
76
|
+
|
|
77
|
+
## đ Section 2 â Usage Guide
|
|
78
|
+
|
|
79
|
+
### Prerequisites
|
|
80
|
+
|
|
81
|
+
- **Runtime**: Node.js (>= 20.x), Python (>= 3.10.x).
|
|
82
|
+
- **Git**: Global git installation required.
|
|
83
|
+
|
|
84
|
+
### Quick Start
|
|
85
|
+
|
|
86
|
+
1. **Initialize & Install**: `unirtm install` (installs all project tools and dependencies).
|
|
87
|
+
2. **Verify**: `make verify` (ensures everything is green).
|
|
88
|
+
|
|
89
|
+
### Configuration Reference
|
|
90
|
+
|
|
91
|
+
| Parameter | Purpose | Location |
|
|
92
|
+
| :------------- | :---------------------------------------------------------------- | :---------------------- |
|
|
93
|
+
| `PROJECT_NAME` | Project identity | `init-project.sh` |
|
|
94
|
+
| `GITHUB_PROXY` | Network optimization (See [Proxy Usage](#-proxy-usage-scenarios)) | `scripts/lib/common.sh` |
|
|
95
|
+
| `VERSION` | Semantic versioning | `package.json` |
|
|
96
|
+
|
|
97
|
+
### File Structure
|
|
98
|
+
|
|
99
|
+
```text
|
|
100
|
+
project-root/
|
|
101
|
+
âââ .agent/ # đ¤ Canonical AI configuration (The Brain)
|
|
102
|
+
â âââ rules/ # đ Unified AI behavioral rules (80+ sets, SSoT)
|
|
103
|
+
â âââ workflows/ # đ ī¸ Unified commands & AI workflows (SpecKit)
|
|
104
|
+
âââ .agents/ # đ§Š Shared command sources (Auto-managed symlinks)
|
|
105
|
+
âââ .github/ # đ GitHub integration & Copilot settings
|
|
106
|
+
âââ .vscode/ # đģ Optimized VS Code configurations
|
|
107
|
+
âââ src/ # đĻ Your actual application source code
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
---
|
|
111
|
+
|
|
112
|
+
## đ ī¸ Section 3 â Operations Guide
|
|
113
|
+
|
|
114
|
+
### Pre-deployment Checklist
|
|
115
|
+
|
|
116
|
+
1. Run `make verify` to ensure all quality gates are green.
|
|
117
|
+
2. Run `make audit` to verify security compliance.
|
|
118
|
+
3. Ensure `CHANGELOG.md` is updated.
|
|
119
|
+
|
|
120
|
+
### Performance Considerations
|
|
121
|
+
|
|
122
|
+
- **Linting Speed**: Pre-commit hooks target < 5s by scanning staged files only.
|
|
123
|
+
- **CI Throughput**: GitHub Actions use matrix builds for parallel testing across OS types.
|
|
124
|
+
|
|
125
|
+
### Troubleshooting
|
|
126
|
+
|
|
127
|
+
- **Problem**: `unirtm install` fails on Windows.
|
|
128
|
+
- **Diagnosis**: Check if `ExecutionPolicy` allows script execution.
|
|
129
|
+
- **Solution**: Run `Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass`.
|
|
130
|
+
- **Problem**: Gitleaks detects false positives.
|
|
131
|
+
- **Diagnosis**: Check `.gitleaks.toml` allowlist.
|
|
132
|
+
- **Solution**: Add fingerprint to `.gitleaksignore`.
|
|
133
|
+
- **Problem**: Pre-commit hooks fail on macOS after `unirtm install` with Python errors.
|
|
134
|
+
- **Diagnosis**: Check if the venv exists: `ls .venv/bin/python`.
|
|
135
|
+
- **Solution**: Rebuild the venv: `rm -rf .venv && unirtm install`.
|
|
136
|
+
|
|
137
|
+
---
|
|
138
|
+
|
|
139
|
+
## đ Section 4 â Security Considerations
|
|
140
|
+
|
|
141
|
+
### Security Model
|
|
142
|
+
|
|
143
|
+
- **Secret Management**: All secrets must be injected via environment variables or handled by HashiCorp Vault. Never commit `.env` files.
|
|
144
|
+
- **Audit Logging**: All critical operations (commits, releases, state changes) are traced via Git and CI logs.
|
|
145
|
+
- **Supply Chain**: All CI actions are pinned to exact versions/SHAs.
|
|
146
|
+
|
|
147
|
+
### Best Practices
|
|
148
|
+
|
|
149
|
+
| Aspect | Requirement | Implementation |
|
|
150
|
+
| :---------- | :--------------------------- | :-------------------------------- |
|
|
151
|
+
| Secrets | No plaintext secrets in repo | `gitleaks` enforced at commit |
|
|
152
|
+
| Integrity | Verify downloads | SHA-256 validation in `common.sh` |
|
|
153
|
+
| Permissions | Non-root execution | Dockerfile best practices |
|
|
154
|
+
|
|
155
|
+
---
|
|
156
|
+
|
|
157
|
+
## đ§âđģ Section 5 â Development Guide
|
|
158
|
+
|
|
159
|
+
### Code Organization
|
|
160
|
+
|
|
161
|
+
```text
|
|
162
|
+
project-root/
|
|
163
|
+
âââ .agent/ # AI configuration (Single Source of Truth)
|
|
164
|
+
â âââ rules/ # 88 behavioral rule files for AI agents
|
|
165
|
+
â âââ workflows/ # SpecKit slash-command definitions
|
|
166
|
+
âââ .github/ # GitHub ecosystem (Actions, templates, Dependabot)
|
|
167
|
+
â âââ workflows/ # CI/CD pipelines (lint, verify, release, security)
|
|
168
|
+
âââ .devcontainer/ # DevContainer configuration for reproducible environments
|
|
169
|
+
âââ docs/ # Project documentation
|
|
170
|
+
â âââ adr/ # Architecture Decision Records
|
|
171
|
+
â âââ runbooks/ # Operations and recovery runbooks
|
|
172
|
+
â âââ glossary.md # Bilingual term glossary
|
|
173
|
+
âââ scripts/ # POSIX shell automation (setup, install, verify)
|
|
174
|
+
â âââ lib/ # Shared shell library functions
|
|
175
|
+
âââ Makefile # Task orchestration (setup, install, lint, verify, audit)
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
**Naming Conventions**: Rule files use `NN-kebab-case.md` (core rules) or `technology.md`
|
|
179
|
+
(language stacks). Workflow files use `namespace.verb.md`. Shell scripts use `kebab-case.sh`.
|
|
180
|
+
|
|
181
|
+
### Extension Points
|
|
182
|
+
|
|
183
|
+
1. **Adding Rules**: Create a new `.md` file in `.agent/rules/` and link it in `00-index.md`.
|
|
184
|
+
2. **Adding Commands**: Add `.md` files to `.agent/workflows/`.
|
|
185
|
+
3. **Adding IDE Support**: Create a redirect folder (e.g., `.myide/`) following the symlink pattern in Rule 03.
|
|
186
|
+
|
|
187
|
+
### Local Development Setup
|
|
188
|
+
|
|
189
|
+
```bash
|
|
190
|
+
git clone <repo>
|
|
191
|
+
cd <repo>
|
|
192
|
+
git config core.ignorecase false # MANDATORY for Mac/Windows
|
|
193
|
+
unirtm install
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
### References
|
|
197
|
+
|
|
198
|
+
- [Full Documentation](docs/index.md)
|
|
199
|
+
- [Project Glossary](docs/glossary.md)
|
|
200
|
+
- [Conventional Commits](https://www.conventionalcommits.org/)
|
|
201
|
+
|
|
202
|
+
### đ Proxy Usage Scenarios
|
|
203
|
+
|
|
204
|
+
The `GITHUB_PROXY` (default: `https://gh-proxy.sn0wdr1am.com/`) is optimized for specific network acceleration scenarios. Misusing it for unsupported protocols (like Git) will result in errors.
|
|
205
|
+
|
|
206
|
+
| Scenario | Supported? | Example / Note |
|
|
207
|
+
| :-------------------- | :--------- | :----------------------------------------------------- |
|
|
208
|
+
| **Release Files** | â
Yes | `.../releases/download/v1.0/tool.zip` |
|
|
209
|
+
| **Source Archives** | â
Yes | `.../archive/master.zip` or `.tar.gz` |
|
|
210
|
+
| **Direct File Links** | â
Yes | `.../blob/master/filename` |
|
|
211
|
+
| **Git Clone** | â **No** | Do **not** use for `git clone` or `insteadOf` configs. |
|
|
212
|
+
| **Project Folders** | â **No** | Browsing/cloning via proxy is not supported. |
|
|
213
|
+
|
|
214
|
+
> [!IMPORTANT]
|
|
215
|
+
> To prevent breaking toolchains (like `mise` or `asdf`), this template explicitly disables Git redirection via this proxy. Use it only for direct HTTP downloads in scripts.
|
|
216
|
+
|
|
217
|
+
## đ License
|
|
218
|
+
|
|
219
|
+
This project is licensed under the **MIT License**.
|
|
220
|
+
Copyright (c) 2026-present [SnowdreamTech Inc.](https://github.com/snowdreamtech)
|
|
221
|
+
See the [LICENSE](./LICENSE) file for the full license text.
|
|
222
|
+
|
|
223
|
+
## Star History
|
|
224
|
+
|
|
225
|
+
[](https://www.star-history.com/?repos=snowdreamtech%2Ftemplate&type=date&legend=top-left)
|
package/README_zh-CN.md
ADDED
|
@@ -0,0 +1,228 @@
|
|
|
1
|
+
# UniRTM (Universal Runtime Manager)
|
|
2
|
+
|
|
3
|
+
å [mise](https://github.com/jdx/mise) å¯åīŧé፠MIT å莎īŧãįšåĢæč°ĸ jdx å mise į¤žåēæäžįäŧį§åæã
|
|
4
|
+
|
|
5
|
+
[](https://github.com/snowdreamtech/template/actions/workflows/ci.yml)
|
|
6
|
+
[](https://github.com/snowdreamtech/template/actions/workflows/cd.yml)
|
|
7
|
+
[](https://github.com/snowdreamtech/template/actions/workflows/pages.yml)
|
|
8
|
+
[](https://github.com/snowdreamtech/template/actions/workflows/codeql.yml)
|
|
9
|
+
[](https://github.com/snowdreamtech/template/actions/workflows/ci.yml)
|
|
10
|
+
[](https://github.com/snowdreamtech/template/actions/workflows/ci.yml)
|
|
11
|
+
[](https://github.com/snowdreamtech/template/releases/latest)
|
|
12
|
+
[](https://opensource.org/license/MIT)
|
|
13
|
+
[](https://github.com/snowdreamtech/template/releases/latest)
|
|
14
|
+
[](https://github.com/snowdreamtech/template/blob/main/.github/dependabot.yml)
|
|
15
|
+
[](https://github.com/pre-commit/pre-commit)
|
|
16
|
+
[](https://github.com/snowdreamtech/template)
|
|
17
|
+
[](https://github.com/snowdreamtech/template/issues)
|
|
18
|
+
[](https://github.com/snowdreamtech/template)
|
|
19
|
+
|
|
20
|
+
[English](README.md) | [įŽäŊ䏿](README_zh-CN.md)
|
|
21
|
+
|
|
22
|
+
ä¸ä¸Ēäŧä¸įē§ãä¸ēå¤ AI IDE åäŊč莞莥įåēįŗæ¨ĄæŋãæŦ饚įŽäŊä¸ē AI Agent č§åãåˇĨäŊæĩå饚įŽé
įŊŽį**åä¸äēåŽæĨæē (Single Source of Truth)**īŧæ¯æčļ
čŋ 50 į§ä¸åį AI čž
åŠ IDEīŧåšļæäžæĩˇéįå¤č¯č¨æ¯æã
|
|
23
|
+
|
|
24
|
+
## đ įšæ§
|
|
25
|
+
|
|
26
|
+
- **å¤ IDE å
ŧ厚æ§**īŧåŧįŽąåŗį¨æ¯æ CursorãWindsurfãGitHub CopilotãClineãRoo CodeãTraeãGeminiãClaude Code į 50 å¤į§ AI įŧčžå¨ã
|
|
27
|
+
- **įģä¸č§åįŗģįģ**īŧå¨ `.agent/rules/` ä¸įģ´æ¤ä¸åŋåč§ååŽäšã卿¤äŋŽæšč§åéčŋåŽå
¨įčŊ¯éžæĨ/éåŽåæ¨ĄåŧčĒå¨äŧ æå°æææ¯æį IDEã
|
|
28
|
+
- **80+ č¯č¨ä¸æĄæļč§å**īŧéĸé
įŊŽįéĢč´¨éč§åīŧæļĩįäģ RustãGoãTypeScriptãPython å° AnsibleãKubernetes å API 莞莥įåä¸Ēéĸåã
|
|
29
|
+
- **æēčŊåˇĨäŊæĩ (SpecKit)**īŧæ ååį `.agent/workflows/`īŧåŊäģ¤īŧīŧåĻ `speckit.plan`ã`speckit.analyze` å `snowdreamtech.init`īŧå¨æææ¯æįį¯åĸä¸äŋæä¸č´ã
|
|
30
|
+
- **ä¸éäŋč¯č´¨é**īŧéčŋ Pre-commit å GitHub Actions éæé¨įĻæŖæĨīŧįĄŽäŋ 100% įäģŖį įē¯åã
|
|
31
|
+
- **čˇ¨åšŗå°å°ąįģĒ**īŧå¨ macOS (Homebrew/MacPorts)ãLinux å Windows 䏿 įŧčŋčĄã
|
|
32
|
+
|
|
33
|
+
## đī¸ įŦŦ 1 č â čŽžčŽĄä¸æļæ
|
|
34
|
+
|
|
35
|
+
### æĻč§ (Overview)
|
|
36
|
+
|
|
37
|
+
Snowdream Tech æ¨Ąæŋæ¯ä¸ä¸ĒåēįĄčææļīŧä¸ä¸ēč§Ŗåŗâå¤é AI IDE åäŊäē§įįé
įŊŽįĸįåâéŽéĸč莞莥ãåŽå¨åį§åšŗå°åč¯č¨ä¸æ ååäēåŧåį¯åĸãAI Agent č§åäģĨåčĒå¨åæĩæ°´įēŋã
|
|
38
|
+
|
|
39
|
+
**æ ¸åŋčŊå (Key Capabilities):**
|
|
40
|
+
|
|
41
|
+
- æäž**įģä¸įč§ååŧæ**īŧ表 50+ į§ IDE ä¸č´å°įēĻæ AI čĄä¸ēã
|
|
42
|
+
- éčŋ卿éé
į POSIX Shell čĒå¨åčæŦīŧåŧēåļäŋč¯**čˇ¨åšŗå°äžŋæēæ§**ã
|
|
43
|
+
- åŽæŊ**ä¸éäŋč¯č´¨éé¨įĻ**īŧIDEãCLIãCIīŧīŧä¸Ĩé˛äģŖį åŖåã
|
|
44
|
+
- æ¯æ**大觿¨Ąå¤č¯č¨ææ¯æ **īŧåšļé
夿¨Ąååįå čŊŊéģčžã
|
|
45
|
+
|
|
46
|
+
### æļæ (Architecture)
|
|
47
|
+
|
|
48
|
+
```mermaid
|
|
49
|
+
graph TD
|
|
50
|
+
A["åŧåč
䏿ēčŊäŊ (Agents)"] -->|æäŊ| IDE["Cursor / Windsurf / Copilot / 50+ å
ļåŽ"]
|
|
51
|
+
IDE -->|éčŋéåŽåč¯ģåč§å| R1[".vscode/"]
|
|
52
|
+
IDE -->|éčŋéåŽåč¯ģåč§å| R2[".github/"]
|
|
53
|
+
IDE -->|éčŋéåŽåč¯ģåč§å| R3[".cline/ .trae/ įį"]
|
|
54
|
+
|
|
55
|
+
R1 -.->|SSoT æé| CoreRules[".agent/rules/"]
|
|
56
|
+
R2 -.->|SSoT æé| CoreRules
|
|
57
|
+
R3 -.->|SSoT æé| CoreRules
|
|
58
|
+
|
|
59
|
+
CoreRules -->|įŽĄįä¸įēĻæ| Src["饚įŽåē፿ēį "]
|
|
60
|
+
CoreRules -->|įŽĄįä¸įēĻæ| Scripts["CI/CD ä¸įģä¸čĒå¨åčæŦ"]
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
### 莞莥åå
|
|
64
|
+
|
|
65
|
+
- **å¯ä¸äēåŽæĨæē (SSoT)**: ææ AI čĄä¸ēååãåŧåčææļåŊäģ¤å Git įæéŠååéä¸å¨ä¸å¤įģ´æ¤īŧåŊģåēæļįå IDE äšé´įé
įŊŽå¤å˛ä¸åäŊã
|
|
66
|
+
- **čˇ¨åšŗå°å¤ææ§ (Cross-Platform)**: æ ¸åŋčĒå¨åæĩæ°´įēŋåēäēåį POSIX Shell įŧåīŧä¸åŧēåļä¸ē Windows (PowerShell / Batch) æäžå¯šįå
ŧ厚įčŊģéįē§å
čŖ
åąã
|
|
67
|
+
- **ä¸é贍鿤忞ŗ (Triple Guarantee)**: įą IDE åŽæļčĒå¨äŋŽå¤ãPre-commit æŦå°åŧēåļéģæãäģĨå CI/CD (GitHub Actions) čŋį̝å
¨éåŽĄčŽĄīŧä¸åąčé˛å
ąåæåģē 100% äģŖį įē¯ååēĻé˛įēŋã
|
|
68
|
+
|
|
69
|
+
### čč´ŖååˇĨ
|
|
70
|
+
|
|
71
|
+
- **.agent/rules/**: æĨæčˇ¨æææ¯æč¯č¨į AI Agent æå¨čĄä¸ēéģčžã
|
|
72
|
+
- **scripts/**: æĨæčˇ¨åšŗå°čĒå¨ååįåŊ卿éģčžã
|
|
73
|
+
- **.agent/workflows/**: æĨæäē¤äēåŧ AI åŊäģ¤ (SpecKit)ã
|
|
74
|
+
|
|
75
|
+
---
|
|
76
|
+
|
|
77
|
+
## đ įŦŦ 2 č â äŊŋ፿å
|
|
78
|
+
|
|
79
|
+
### åįŊŽæĄäģļ
|
|
80
|
+
|
|
81
|
+
- **čŋčĄæļ**: Node.js (>= 20.x), Python (>= 3.10.x)ã
|
|
82
|
+
- **Git**: éčĻå
¨åąåŽčŖ
gitã
|
|
83
|
+
- **Make**: įģä¸åŊä줿§čĄæåŋ
éã
|
|
84
|
+
|
|
85
|
+
### åŋĢéåŧå§
|
|
86
|
+
|
|
87
|
+
1. **åå§åä¸åŽčŖ
**īŧ`unirtm install`īŧåŽčŖ
åŧåæéæ ¸åŋåˇĨå
ˇä¸éĄšįŽäžčĩīŧã
|
|
88
|
+
2. **éĒč¯**īŧ`make verify`īŧįĄŽäŋį¯åĸåĨåēˇīŧã
|
|
89
|
+
|
|
90
|
+
### é
įŊŽåč
|
|
91
|
+
|
|
92
|
+
| åæ° | į¨é | äŊįŊŽ |
|
|
93
|
+
| :------------- | :----------------------------------------- | :---------------------- |
|
|
94
|
+
| `PROJECT_NAME` | 饚įŽčēĢäģŊ | `init-project.sh` |
|
|
95
|
+
| `GITHUB_PROXY` | įŊįģäŧå (č§ [äģŖįäŊŋį¨åē](#-äģŖįäŊŋį¨å翝)) | `scripts/lib/common.sh` |
|
|
96
|
+
| `VERSION` | č¯äšåįæŦ | `package.json` |
|
|
97
|
+
|
|
98
|
+
### įŽåŊįģæ
|
|
99
|
+
|
|
100
|
+
```text
|
|
101
|
+
project-root/
|
|
102
|
+
âââ .agent/ # đ¤ æå¨ AI é
įŊŽ (大č)
|
|
103
|
+
â âââ rules/ # đ įģä¸ AI čĄä¸ēč§å (80+ åĨäģļ, SSoT)
|
|
104
|
+
â âââ workflows/ # đ ī¸ įģä¸åŊäģ¤ä¸ AI åˇĨäŊæĩ (SpecKit)
|
|
105
|
+
âââ .agents/ # đ§Š å
ąäēĢåŊä줿ē (čĒå¨įŽĄįįčŊ¯éžæĨ)
|
|
106
|
+
âââ .github/ # đ GitHub éæä¸ Copilot 莞įŊŽ
|
|
107
|
+
âââ .vscode/ # đģ äŧåį VS Code é
įŊŽ
|
|
108
|
+
âââ src/ # đĻ æ¨įåŽé
åē፿ēäģŖį
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
---
|
|
112
|
+
|
|
113
|
+
## đ ī¸ įŦŦ 3 č â čŋįģ´æå
|
|
114
|
+
|
|
115
|
+
### é¨įŊ˛åæŖæĨæ¸
å
|
|
116
|
+
|
|
117
|
+
1. čŋčĄ `make verify` įĄŽäŋææč´¨éé¨įĻåä¸ēįģŋč˛ã
|
|
118
|
+
2. čŋčĄ `make audit` éĒč¯åŽå
¨åč§æ§ã
|
|
119
|
+
3. įĄŽäŋ `CHANGELOG.md` åˇ˛æ´æ°ã
|
|
120
|
+
|
|
121
|
+
### æ§čŊčč
|
|
122
|
+
|
|
123
|
+
- **Lint éåēĻ**: Pre-commit éŠåéčŋäģ
æĢææåæäģļīŧįŽæ čæļ < 5sã
|
|
124
|
+
- **CI ååé**: GitHub Actions äŊŋį¨įŠéĩæåģēå¨ä¸åæäŊįŗģįģä¸åšļčĄæĩč¯ã
|
|
125
|
+
|
|
126
|
+
### æ
éæé¤
|
|
127
|
+
|
|
128
|
+
- **éŽéĸ**: `unirtm install` å¨ Windows ä¸å¤ąč´Ĩã
|
|
129
|
+
- **蝿**: æŖæĨ `ExecutionPolicy` æ¯åĻå
莸čæŦæ§čĄã
|
|
130
|
+
- **č§ŖåŗæšæĄ**: čŋčĄ `Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass`ã
|
|
131
|
+
- **éŽéĸ**: Gitleaks æŖæĩå°č¯¯æĨã
|
|
132
|
+
- **蝿**: æŖæĨ `.gitleaks.toml` įŊååã
|
|
133
|
+
- **č§ŖåŗæšæĄ**: å°įšåžį æˇģå å° `.gitleaksignore`ã
|
|
134
|
+
- **éŽéĸ**: `unirtm install` åīŧmacOS ä¸į Pre-commit éŠååēį° Python æĨéã
|
|
135
|
+
- **蝿**: æŖæĨ venv æ¯åĻåå¨īŧ`ls .venv/bin/python`ã
|
|
136
|
+
- **č§ŖåŗæšæĄ**: éåģē venvīŧ`rm -rf .venv && unirtm install`ã
|
|
137
|
+
|
|
138
|
+
---
|
|
139
|
+
|
|
140
|
+
## đ įŦŦ 4 č â åŽå
¨æŗ¨æäē饚
|
|
141
|
+
|
|
142
|
+
### åŽå
¨æ¨Ąå
|
|
143
|
+
|
|
144
|
+
- **æēå¯įŽĄį**: æææēå¯åŋ
éĄģéčŋį¯åĸåéæŗ¨å
Ĩæįą HashiCorp Vault å¤įãä¸ĨįĻæäē¤ `.env` æäģļã
|
|
145
|
+
- **åŽĄčŽĄæĨåŋ**: ææå
ŗéŽæäŊīŧæäē¤ãåå¸ãįļæåæ´īŧåéčŋ Git å CI æĨåŋ莰åŊã
|
|
146
|
+
- **äžåēéž**: ææ CI Action åéåŽå°į˛žįĄŽįįæŦ/SHAã
|
|
147
|
+
|
|
148
|
+
### æäŊŗåŽčˇĩ
|
|
149
|
+
|
|
150
|
+
| įģ´åēĻ | čĻæą | åŽį° |
|
|
151
|
+
| :----- | :--------------- | :---------------------------- |
|
|
152
|
+
| æēå¯ | äģåē䏿 æææēå¯ | æä礿ļåŧēåļæ§čĄ `gitleaks` |
|
|
153
|
+
| åŽæ´æ§ | éĒč¯ä¸čŊŊå
厚 | `common.sh` ä¸į SHA-256 æ ĄéĒ |
|
|
154
|
+
| æé | é root æ§čĄ | Dockerfile æäŊŗåŽčˇĩ |
|
|
155
|
+
|
|
156
|
+
---
|
|
157
|
+
|
|
158
|
+
## đ§âđģ įŦŦ 5 č â åŧåč
æå
|
|
159
|
+
|
|
160
|
+
### äģŖį įģįģ (Code Organization)
|
|
161
|
+
|
|
162
|
+
```text
|
|
163
|
+
project-root/
|
|
164
|
+
âââ .agent/ # AI é
įŊŽīŧåä¸äēåŽæĨæēīŧ
|
|
165
|
+
â âââ rules/ # 88 ä¸Ē AI Agent čĄä¸ēč§åæäģļ
|
|
166
|
+
â âââ workflows/ # SpecKit ææ åŊäģ¤åŽäš
|
|
167
|
+
âââ .github/ # GitHub įæīŧActionsãæ¨ĄæŋãDependabotīŧ
|
|
168
|
+
â âââ workflows/ # CI/CD æĩæ°´įēŋīŧlintãverifyãreleaseãsecurityīŧ
|
|
169
|
+
âââ .devcontainer/ # DevContainer é
įŊŽīŧäŋéå¯å¤į°įåŧåį¯åĸ
|
|
170
|
+
âââ docs/ # éĄšįŽææĄŖ
|
|
171
|
+
â âââ adr/ # æļæåŗį莰åŊ
|
|
172
|
+
â âââ runbooks/ # čŋįģ´ä¸æĸ夿å
|
|
173
|
+
â âââ glossary.md # ä¸čąæå¯šį
§æ¯č¯čĄ¨
|
|
174
|
+
âââ scripts/ # POSIX Shell čĒå¨åčæŦīŧsetupãinstallãverifyīŧ
|
|
175
|
+
â âââ lib/ # å
ąäēĢ Shell åēåŊæ°
|
|
176
|
+
âââ Makefile # äģģåĄįŧæīŧsetupãinstallãlintãverifyãauditīŧ
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
**åŊåč§č**īŧæ ¸åŋč§åæäģļäŊŋ፠`NN-῍ĒįēŋåŊå.md`īŧč¯č¨æ č§åäŊŋ፠`technology.md`īŧ
|
|
180
|
+
åˇĨäŊæĩæäģļäŊŋ፠`namespace.verb.md`īŧShell čæŦäŊŋ፠`kebab-case.sh`ã
|
|
181
|
+
|
|
182
|
+
### æŠåąįš
|
|
183
|
+
|
|
184
|
+
1. **æˇģå č§å**: å¨ `.agent/rules/` ä¸ååģēæ°į `.md` æäģļīŧåšļå¨ `00-index.md` ä¸å
ŗčã
|
|
185
|
+
2. **æˇģå åŊäģ¤**: å° `.md` æäģᅫģå å° `.agent/workflows/`ã
|
|
186
|
+
3. **æˇģå IDE æ¯æ**: æį
§ Rule 03 ä¸įčŊ¯éžæĨæ¨ĄåŧååģēéåŽåæäģļ多īŧäžåĻ `.myide/`īŧã
|
|
187
|
+
|
|
188
|
+
### æŦå°åŧå莞įŊŽ
|
|
189
|
+
|
|
190
|
+
```bash
|
|
191
|
+
git clone <repo>
|
|
192
|
+
cd <repo>
|
|
193
|
+
git config core.ignorecase false # Mac/Windows ፿ˇåŋ
éĄģæ§čĄæ¤čŽžįŊŽ
|
|
194
|
+
unirtm install
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
### åččĩæ
|
|
198
|
+
|
|
199
|
+
- [åŽæ´ææĄŖ](docs/index.md)
|
|
200
|
+
- [éĄšįŽæ¯č¯čĄ¨](docs/glossary.md)
|
|
201
|
+
- [įēĻåŽåŧæäē¤](https://www.conventionalcommits.org/)
|
|
202
|
+
|
|
203
|
+
### đ äģŖįäŊŋį¨å翝
|
|
204
|
+
|
|
205
|
+
`GITHUB_PROXY` (éģ莤: `https://gh-proxy.sn0wdr1am.com/`) é寚įšåŽįįŊįģå éå翝čŋčĄäēäŧåãå¨ä¸æ¯æįå莎īŧåĻ Gitīŧä¸č¯¯į¨åŽäŧå¯ŧč´é蝝ã
|
|
206
|
+
|
|
207
|
+
| å翝 | æ¯åĻæ¯æ | į¤ēäž / 蝴æ |
|
|
208
|
+
| :--------------------- | :------------ | :--------------------------------------------- |
|
|
209
|
+
| **Release æäģļ** | â
æ¯æ | `.../releases/download/v1.0/tool.zip` |
|
|
210
|
+
| **æēį åŊæĄŖ (Archive)** | â
æ¯æ | `.../archive/master.zip` æ `.tar.gz` |
|
|
211
|
+
| **æäģļį´æĨéžæĨ** | â
æ¯æ | `.../blob/master/filename` |
|
|
212
|
+
| **Git Clone** | â **䏿¯æ** | **蝎åŋ**į¨äē `git clone` æ `insteadOf` é
įŊŽã |
|
|
213
|
+
| **éĄšįŽæäģļ多** | â **䏿¯æ** | 䏿¯æéčŋäģŖįčŋčĄéĄšįŽæäģļ多įæĩč§æå
éã |
|
|
214
|
+
|
|
215
|
+
> [!IMPORTANT]
|
|
216
|
+
> ä¸ēäē鞿ĸį ´ååˇĨå
ˇéžīŧåĻ `mise` æ `asdf`īŧīŧæŦæ¨ĄæŋæžåŧįĻį¨äēéčŋæ¤äģŖįčŋčĄį Git éåŽåã蝎äģ
å¨čæŦä¸čŋčĄį´æĨ HTTP ä¸čŊŊæļäŊŋį¨åŽã
|
|
217
|
+
|
|
218
|
+
---
|
|
219
|
+
|
|
220
|
+
## đ 莸å¯č¯
|
|
221
|
+
|
|
222
|
+
æŦ饚įŽé፠**MIT 莸å¯č¯** ææã
|
|
223
|
+
įæææ (c) 2026-į°å¨ [SnowdreamTech Inc.](https://github.com/snowdreamtech)
|
|
224
|
+
č¯Ļč§ [LICENSE](./LICENSE) æäģļã
|
|
225
|
+
|
|
226
|
+
## Star History
|
|
227
|
+
|
|
228
|
+
[](https://www.star-history.com/?repos=snowdreamtech%2Ftemplate&type=date&legend=top-left)
|
package/install.js
ADDED
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
// install.js - Root package entry point for @snowdreamtech/unirtm
|
|
3
|
+
//
|
|
4
|
+
// This script is both the `bin` entry and the `postinstall` hook.
|
|
5
|
+
// It locates the correct platform-specific binary and either:
|
|
6
|
+
// - Runs it (when invoked as CLI)
|
|
7
|
+
// - Validates the installation (when invoked via postinstall)
|
|
8
|
+
|
|
9
|
+
'use strict';
|
|
10
|
+
|
|
11
|
+
const { execFileSync, spawnSync } = require('child_process');
|
|
12
|
+
const path = require('path');
|
|
13
|
+
const fs = require('fs');
|
|
14
|
+
const os = require('os');
|
|
15
|
+
|
|
16
|
+
// ---------------------------------------------------------------------------
|
|
17
|
+
// Platform detection
|
|
18
|
+
// ---------------------------------------------------------------------------
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Map Node.js process.platform + process.arch to npm package suffix.
|
|
22
|
+
* @returns {string} package suffix e.g. "linux-x64"
|
|
23
|
+
*/
|
|
24
|
+
function getPlatformPackageSuffix() {
|
|
25
|
+
const platform = process.platform; // 'darwin' | 'linux' | 'win32'
|
|
26
|
+
const arch = process.arch; // 'x64' | 'arm64' | 'arm' | 'ia32'
|
|
27
|
+
|
|
28
|
+
// ARM sub-arch detection (armv5/armv6/armv7)
|
|
29
|
+
// process.config.variables.arm_version is available in some Node builds
|
|
30
|
+
const armVersion = (process.config && process.config.variables && process.config.variables.arm_version) || '';
|
|
31
|
+
|
|
32
|
+
if (platform === 'darwin') {
|
|
33
|
+
if (arch === 'arm64') return 'darwin-arm64';
|
|
34
|
+
if (arch === 'x64') return 'darwin-x64';
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
if (platform === 'linux') {
|
|
38
|
+
if (arch === 'x64') return 'linux-x64';
|
|
39
|
+
if (arch === 'arm64') return 'linux-arm64';
|
|
40
|
+
if (arch === 'ia32') return 'linux-ia32';
|
|
41
|
+
if (arch === 'arm') {
|
|
42
|
+
if (armVersion === '5') return 'linux-arm-5';
|
|
43
|
+
if (armVersion === '6') return 'linux-arm-6';
|
|
44
|
+
return 'linux-arm'; // armv7 default
|
|
45
|
+
}
|
|
46
|
+
if (arch === 'loong64') return 'linux-loong64';
|
|
47
|
+
if (arch === 'ppc64') return 'linux-ppc64le';
|
|
48
|
+
if (arch === 'riscv64') return 'linux-riscv64';
|
|
49
|
+
if (arch === 's390x') return 'linux-s390x';
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
if (platform === 'win32') {
|
|
53
|
+
if (arch === 'x64') return 'windows-x64';
|
|
54
|
+
if (arch === 'arm64') return 'windows-arm64';
|
|
55
|
+
if (arch === 'ia32') return 'windows-ia32';
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
throw new Error(
|
|
59
|
+
`Unsupported platform: ${platform}-${arch}\n` +
|
|
60
|
+
'Please open an issue at https://github.com/snowdreamtech/unirtm/issues'
|
|
61
|
+
);
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
// ---------------------------------------------------------------------------
|
|
65
|
+
// Binary resolution
|
|
66
|
+
// ---------------------------------------------------------------------------
|
|
67
|
+
|
|
68
|
+
/**
|
|
69
|
+
* Locate the platform binary from the optional dependency package.
|
|
70
|
+
* @param {string} suffix e.g. "linux-x64"
|
|
71
|
+
* @returns {string} absolute path to the binary
|
|
72
|
+
*/
|
|
73
|
+
function resolveBinary(suffix) {
|
|
74
|
+
const pkgName = `@snowdreamtech/unirtm-${suffix}`;
|
|
75
|
+
const binaryName = process.platform === 'win32' ? 'unirtm.exe' : 'unirtm';
|
|
76
|
+
|
|
77
|
+
// Strategy 1: resolve via require.resolve (works when package is installed)
|
|
78
|
+
try {
|
|
79
|
+
const pkgJsonPath = require.resolve(`${pkgName}/package.json`);
|
|
80
|
+
const pkgDir = path.dirname(pkgJsonPath);
|
|
81
|
+
const binPath = path.join(pkgDir, 'bin', binaryName);
|
|
82
|
+
if (fs.existsSync(binPath)) {
|
|
83
|
+
return binPath;
|
|
84
|
+
}
|
|
85
|
+
} catch (_) {
|
|
86
|
+
// package not found via require.resolve, try manual search
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
// Strategy 2: walk up node_modules hierarchy
|
|
90
|
+
let dir = __dirname;
|
|
91
|
+
for (let i = 0; i < 10; i++) {
|
|
92
|
+
const candidate = path.join(dir, 'node_modules', pkgName, 'bin', binaryName);
|
|
93
|
+
if (fs.existsSync(candidate)) {
|
|
94
|
+
return candidate;
|
|
95
|
+
}
|
|
96
|
+
const parent = path.dirname(dir);
|
|
97
|
+
if (parent === dir) break;
|
|
98
|
+
dir = parent;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
throw new Error(
|
|
102
|
+
`Could not find binary for ${pkgName}.\n` +
|
|
103
|
+
'Try reinstalling @snowdreamtech/unirtm:\n' +
|
|
104
|
+
' npm install @snowdreamtech/unirtm\n\n' +
|
|
105
|
+
`Platform: ${process.platform}-${process.arch}`
|
|
106
|
+
);
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
// ---------------------------------------------------------------------------
|
|
110
|
+
// Entry point
|
|
111
|
+
// ---------------------------------------------------------------------------
|
|
112
|
+
|
|
113
|
+
const isPostInstall = process.env.npm_lifecycle_event === 'postinstall';
|
|
114
|
+
|
|
115
|
+
if (isPostInstall) {
|
|
116
|
+
// Postinstall: just validate that the binary can be found
|
|
117
|
+
try {
|
|
118
|
+
const suffix = getPlatformPackageSuffix();
|
|
119
|
+
const binPath = resolveBinary(suffix);
|
|
120
|
+
const result = spawnSync(binPath, ['--version'], { encoding: 'utf8' });
|
|
121
|
+
if (result.status === 0) {
|
|
122
|
+
process.stdout.write(`â
unirtm installed successfully (${binPath})\n`);
|
|
123
|
+
}
|
|
124
|
+
} catch (err) {
|
|
125
|
+
// Non-fatal: postinstall failure should not break npm install
|
|
126
|
+
process.stderr.write(`â ī¸ unirtm: ${err.message}\n`);
|
|
127
|
+
}
|
|
128
|
+
} else {
|
|
129
|
+
// CLI invocation: forward all arguments to the native binary
|
|
130
|
+
try {
|
|
131
|
+
const suffix = getPlatformPackageSuffix();
|
|
132
|
+
const binPath = resolveBinary(suffix);
|
|
133
|
+
const args = process.argv.slice(2);
|
|
134
|
+
|
|
135
|
+
const result = spawnSync(binPath, args, {
|
|
136
|
+
stdio: 'inherit',
|
|
137
|
+
windowsHide: false,
|
|
138
|
+
});
|
|
139
|
+
|
|
140
|
+
process.exit(result.status !== null ? result.status : 1);
|
|
141
|
+
} catch (err) {
|
|
142
|
+
process.stderr.write(`Error: ${err.message}\n`);
|
|
143
|
+
process.exit(1);
|
|
144
|
+
}
|
|
145
|
+
}
|
package/package.json
ADDED
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@snowdreamtech/unirtm",
|
|
3
|
+
"version": "0.0.1",
|
|
4
|
+
"description": "UniRTM - Universal Runtime Manager: enterprise-grade foundational toolchain for multi-AI IDE collaboration",
|
|
5
|
+
"license": "MIT",
|
|
6
|
+
"homepage": "https://github.com/snowdreamtech/unirtm",
|
|
7
|
+
"repository": {
|
|
8
|
+
"type": "git",
|
|
9
|
+
"url": "https://github.com/snowdreamtech/unirtm"
|
|
10
|
+
},
|
|
11
|
+
"bugs": {
|
|
12
|
+
"url": "https://github.com/snowdreamtech/unirtm/issues"
|
|
13
|
+
},
|
|
14
|
+
"keywords": [
|
|
15
|
+
"unirtm",
|
|
16
|
+
"runtime",
|
|
17
|
+
"manager",
|
|
18
|
+
"toolchain",
|
|
19
|
+
"ai",
|
|
20
|
+
"ide"
|
|
21
|
+
],
|
|
22
|
+
"bin": {
|
|
23
|
+
"unirtm": "install.js"
|
|
24
|
+
},
|
|
25
|
+
"scripts": {
|
|
26
|
+
"postinstall": "node install.js"
|
|
27
|
+
},
|
|
28
|
+
"files": [
|
|
29
|
+
"install.js",
|
|
30
|
+
"LICENSE",
|
|
31
|
+
"README.md",
|
|
32
|
+
"README_zh-CN.md"
|
|
33
|
+
],
|
|
34
|
+
"optionalDependencies": {
|
|
35
|
+
"@snowdreamtech/unirtm-darwin-arm64": "0.0.1",
|
|
36
|
+
"@snowdreamtech/unirtm-darwin-x64": "0.0.1",
|
|
37
|
+
"@snowdreamtech/unirtm-linux-x64": "0.0.1",
|
|
38
|
+
"@snowdreamtech/unirtm-linux-arm64": "0.0.1",
|
|
39
|
+
"@snowdreamtech/unirtm-linux-ia32": "0.0.1",
|
|
40
|
+
"@snowdreamtech/unirtm-linux-arm": "0.0.1",
|
|
41
|
+
"@snowdreamtech/unirtm-linux-arm-5": "0.0.1",
|
|
42
|
+
"@snowdreamtech/unirtm-linux-arm-6": "0.0.1",
|
|
43
|
+
"@snowdreamtech/unirtm-linux-loong64": "0.0.1",
|
|
44
|
+
"@snowdreamtech/unirtm-linux-ppc64le": "0.0.1",
|
|
45
|
+
"@snowdreamtech/unirtm-linux-riscv64": "0.0.1",
|
|
46
|
+
"@snowdreamtech/unirtm-linux-s390x": "0.0.1",
|
|
47
|
+
"@snowdreamtech/unirtm-windows-x64": "0.0.1",
|
|
48
|
+
"@snowdreamtech/unirtm-windows-arm64": "0.0.1",
|
|
49
|
+
"@snowdreamtech/unirtm-windows-ia32": "0.0.1"
|
|
50
|
+
},
|
|
51
|
+
"engines": {
|
|
52
|
+
"node": ">=18"
|
|
53
|
+
}
|
|
54
|
+
}
|