@puku/puku-cli 1.8.56 → 1.8.66
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 +6 -6
- package/README.md +57 -4
- package/dist/cli.mjs +2209 -2156
- package/dist/vendor/seccomp/arm64/apply-seccomp +0 -0
- package/dist/vendor/seccomp/x64/apply-seccomp +0 -0
- package/package.json +12 -13
package/LICENSE
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
NOTICE
|
|
2
2
|
|
|
3
|
-
This repository contains code derived from
|
|
3
|
+
This repository contains code derived from Puku CLI's prior version.
|
|
4
4
|
|
|
5
|
-
The original
|
|
6
|
-
Copyright (c)
|
|
7
|
-
Subject to
|
|
5
|
+
The original Puku CLI source is proprietary software:
|
|
6
|
+
Copyright (c) Puku CLI. All rights reserved.
|
|
7
|
+
Subject to Puku CLI's Commercial Terms of Service.
|
|
8
8
|
|
|
9
9
|
Modifications and additions by puku-cli contributors are offered under
|
|
10
10
|
the MIT License where legally permissible:
|
|
@@ -23,7 +23,7 @@ the MIT License where legally permissible:
|
|
|
23
23
|
|
|
24
24
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND.
|
|
25
25
|
|
|
26
|
-
The underlying derived code remains subject to
|
|
27
|
-
This project does not have
|
|
26
|
+
The underlying derived code remains subject to Puku CLI's copyright.
|
|
27
|
+
This project does not have Puku CLI's authorization to distribute
|
|
28
28
|
their proprietary source. Users and contributors should evaluate their
|
|
29
29
|
own legal position.
|
package/README.md
CHANGED
|
@@ -7,15 +7,13 @@
|
|
|
7
7
|
<a href="https://www.npmjs.com/package/@puku/puku-cli">
|
|
8
8
|
<img src="https://img.shields.io/npm/dt/@puku/puku-cli.svg" alt="npm downloads">
|
|
9
9
|
</a>
|
|
10
|
-
<
|
|
11
|
-
<img src="https://img.shields.io/badge/license-Proprietary-blue.svg" alt="license">
|
|
12
|
-
</a>
|
|
10
|
+
<img src="https://img.shields.io/badge/license-Source%20Available-blue.svg" alt="license: Source Available">
|
|
13
11
|
<a href="https://nodejs.org">
|
|
14
12
|
<img src="https://img.shields.io/node/v/@puku/puku-cli.svg" alt="node version">
|
|
15
13
|
</a>
|
|
16
14
|
</p>
|
|
17
15
|
|
|
18
|
-
|
|
16
|
+
Terminal coding assistant powered by Puku AI.
|
|
19
17
|
|
|
20
18
|
## Features
|
|
21
19
|
|
|
@@ -27,6 +25,7 @@ AI coding assistant powered by **Puku AI** — an intelligent CLI tool that help
|
|
|
27
25
|
## Requirements
|
|
28
26
|
|
|
29
27
|
- Node.js 20 or higher
|
|
28
|
+
- **Linux only:** `bubblewrap`, `socat`, and `ripgrep` (see [Sandbox prerequisites](#sandbox-prerequisites-linux) below)
|
|
30
29
|
|
|
31
30
|
## Installation
|
|
32
31
|
|
|
@@ -38,6 +37,60 @@ npm install -g @puku/puku-cli
|
|
|
38
37
|
bun add -g @puku/puku-cli
|
|
39
38
|
```
|
|
40
39
|
|
|
40
|
+
> **⚠️ Linux users — install sandbox prerequisites first.**
|
|
41
|
+
>
|
|
42
|
+
> The Linux sandbox needs three binaries from your **OS package manager**
|
|
43
|
+
> that are not bundled with puku-cli. If they're missing, the CLI will
|
|
44
|
+
> refuse to start with a message like `apt install socat`:
|
|
45
|
+
>
|
|
46
|
+
> ```bash
|
|
47
|
+
> # Debian / Ubuntu
|
|
48
|
+
> sudo apt install bubblewrap socat ripgrep
|
|
49
|
+
>
|
|
50
|
+
> # Fedora / RHEL
|
|
51
|
+
> sudo dnf install bubblewrap socat ripgrep
|
|
52
|
+
>
|
|
53
|
+
> # Arch
|
|
54
|
+
> sudo pacman -S bubblewrap socat ripgrep
|
|
55
|
+
> ```
|
|
56
|
+
>
|
|
57
|
+
> macOS and Windows need no extra packages — macOS uses the built-in
|
|
58
|
+
> `sandbox-exec`, Windows uses a bundled helper.
|
|
59
|
+
|
|
60
|
+
## Sandbox prerequisites (Linux)
|
|
61
|
+
|
|
62
|
+
The puku-cli sandbox on Linux uses `bubblewrap` for user-namespace
|
|
63
|
+
isolation, `socat` for proxy bridging, and `ripgrep` for deny-path
|
|
64
|
+
scanning. These come from your **distro**, not from npm — they have to
|
|
65
|
+
match the host kernel/libc exactly and must be installed with the
|
|
66
|
+
distro's setuid/file-cap conventions.
|
|
67
|
+
|
|
68
|
+
| Component | Role | Source |
|
|
69
|
+
| ----------------- | ----------------------------------------------------- | ------------------------------- |
|
|
70
|
+
| `bubblewrap` | setuid-root helper that creates the user-namespace container | distro package manager |
|
|
71
|
+
| `socat` | userspace `UNIX-LISTEN → TCP:localhost:port` proxy bridge | distro package manager |
|
|
72
|
+
| `ripgrep` (`rg`) | fast deny-path scanner | distro package manager |
|
|
73
|
+
| `apply-seccomp` | seccomp-BPF filter installer — **bundled** with puku-cli | ships in the install (C, Linux x86-64/arm64) |
|
|
74
|
+
|
|
75
|
+
### Ubuntu 24.04+ extra step
|
|
76
|
+
|
|
77
|
+
Ubuntu 24.04+ restricts unprivileged user namespaces by default via
|
|
78
|
+
AppArmor, which prevents `bubblewrap` from working. Allow it with:
|
|
79
|
+
|
|
80
|
+
```bash
|
|
81
|
+
sudo sysctl -w kernel.apparmor_restrict_unprivileged_userns=0
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
…or grant `userns` to `bwrap` via a per-binary AppArmor profile.
|
|
85
|
+
|
|
86
|
+
### Install cheat sheet
|
|
87
|
+
|
|
88
|
+
- **Debian / Ubuntu** — `apt install bubblewrap socat ripgrep`
|
|
89
|
+
- **Fedora / RHEL** — `dnf install bubblewrap socat ripgrep`
|
|
90
|
+
- **Arch** — `pacman -S bubblewrap socat ripgrep`
|
|
91
|
+
- **macOS** — no host packages required (kernel `sandbox-exec`); install `ripgrep` only if you want deny-path scanning (`brew install ripgrep`)
|
|
92
|
+
- **Windows** — no host packages required (bundled `puku-win.exe` helper)
|
|
93
|
+
|
|
41
94
|
## Usage
|
|
42
95
|
|
|
43
96
|
```bash
|