gibil 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/LICENSE +20 -0
- package/README.md +94 -0
- package/dist/index.js +1714 -0
- package/dist/index.js.map +1 -0
- package/package.json +46 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
Copyright (c) 2025-present Alex Mouradian. All rights reserved.
|
|
2
|
+
|
|
3
|
+
This software and associated documentation files (the "Software") are the
|
|
4
|
+
exclusive property of Alex Mouradian.
|
|
5
|
+
|
|
6
|
+
Permission is NOT granted to any person or entity to use, copy, modify, merge,
|
|
7
|
+
publish, distribute, sublicense, and/or sell copies of the Software for
|
|
8
|
+
commercial purposes.
|
|
9
|
+
|
|
10
|
+
You may view and fork this repository for personal, educational, or
|
|
11
|
+
non-commercial purposes only, provided that the above copyright notice and this
|
|
12
|
+
permission notice are included in all copies or substantial portions of the
|
|
13
|
+
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
|
+
AUTHOR BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
|
19
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
|
20
|
+
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
<p align="center">
|
|
2
|
+
<img src="logo.png" width="200" alt="Gibil" />
|
|
3
|
+
</p>
|
|
4
|
+
|
|
5
|
+
<h1 align="center">Gibil</h1>
|
|
6
|
+
|
|
7
|
+
<p align="center">Ephemeral dev compute for humans and AI agents. CLI-first, no UI required.</p>
|
|
8
|
+
|
|
9
|
+
<p align="center">
|
|
10
|
+
<img src="https://img.shields.io/badge/tests-99%20passed-brightgreen" alt="Tests: 99 passed" />
|
|
11
|
+
<img src="https://img.shields.io/badge/test%20files-14%20passed-brightgreen" alt="Test files: 14 passed" />
|
|
12
|
+
<img src="https://img.shields.io/badge/vitest-v4.1.0-yellow" alt="Vitest v4.1.0" />
|
|
13
|
+
<img src="https://img.shields.io/badge/version-0.1.0-blue" alt="Version 0.1.0" />
|
|
14
|
+
<img src="https://img.shields.io/badge/license-proprietary-red" alt="License: Proprietary" />
|
|
15
|
+
</p>
|
|
16
|
+
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
## Quick Start
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
pnpm install
|
|
23
|
+
pnpm build
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
## Usage
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
# Create a VM
|
|
30
|
+
gibil create --name my-app --repo github.com/you/project --ttl 30
|
|
31
|
+
|
|
32
|
+
# SSH into it
|
|
33
|
+
gibil ssh my-app
|
|
34
|
+
|
|
35
|
+
# Run a command
|
|
36
|
+
gibil run my-app "pnpm test"
|
|
37
|
+
|
|
38
|
+
# Destroy when done
|
|
39
|
+
gibil destroy my-app
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
AI agents can use `--json` for machine-readable output.
|
|
43
|
+
|
|
44
|
+
## Dev
|
|
45
|
+
|
|
46
|
+
```bash
|
|
47
|
+
pnpm dev -- create --name my-app --json
|
|
48
|
+
pnpm test
|
|
49
|
+
pnpm test:watch
|
|
50
|
+
pnpm build
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
## Test Tracker
|
|
54
|
+
|
|
55
|
+
| Suite | File | Status |
|
|
56
|
+
|-------|------|--------|
|
|
57
|
+
| Unit | `config-parser.test.ts` | Passing |
|
|
58
|
+
| Unit | `logger.test.ts` | Passing |
|
|
59
|
+
| Unit | `auth.test.ts` | Passing |
|
|
60
|
+
| Unit | `cli.test.ts` | Passing |
|
|
61
|
+
| Unit | `cloud-init.test.ts` | Passing |
|
|
62
|
+
| Unit | `hetzner.test.ts` | Passing |
|
|
63
|
+
| Unit | `mcp.test.ts` | Passing |
|
|
64
|
+
| Unit | `paths.test.ts` | Passing |
|
|
65
|
+
| Unit | `random.test.ts` | Passing |
|
|
66
|
+
| Unit | `ssh-keys.test.ts` | Passing |
|
|
67
|
+
| Unit | `store.test.ts` | Passing |
|
|
68
|
+
| Unit | `validate.test.ts` | Passing |
|
|
69
|
+
| Integration | `full-pipeline.test.ts` | Passing |
|
|
70
|
+
| Integration | `mock-provider.test.ts` | Passing |
|
|
71
|
+
|
|
72
|
+
**99 tests across 14 files — all passing.**
|
|
73
|
+
|
|
74
|
+
## Publishing to npm
|
|
75
|
+
|
|
76
|
+
```bash
|
|
77
|
+
# Login (one-time)
|
|
78
|
+
npm login
|
|
79
|
+
|
|
80
|
+
# Build, verify contents, publish
|
|
81
|
+
pnpm build
|
|
82
|
+
npm pack --dry-run # check what will be included
|
|
83
|
+
npm publish
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
Only `dist/`, `LICENSE`, `README.md`, and `package.json` are published. Source code stays private.
|
|
87
|
+
|
|
88
|
+
## Environment
|
|
89
|
+
|
|
90
|
+
| Variable | Required | Description |
|
|
91
|
+
|----------|----------|-------------|
|
|
92
|
+
| `HETZNER_API_TOKEN` | Yes | For VM operations |
|
|
93
|
+
| `GIBIL_API_KEY` | No | For authenticated usage / metering |
|
|
94
|
+
| `GIBIL_API_URL` | No | Override Supabase Edge Functions URL |
|