pi-runline 0.1.0 → 0.2.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 +49 -13
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -1,26 +1,60 @@
|
|
|
1
1
|
# pi-runline
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Code mode for [pi](https://github.com/mariozechner/pi).
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
An extension that plugs [runline](https://www.npmjs.com/package/runline) into coding agents. The agent gets two native tools, a fuzzy picker for choosing which of the 188 built-in plugins to expose, and a guided credential prompt for the ones it hasn't seen before.
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
## Install
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
pi install pi-runline
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
## Tools
|
|
14
|
+
|
|
15
|
+
On session start, if the current working directory has a `.runline/` (or one is configured globally — see below), the extension registers two tools and injects the selected plugin catalog into the agent's context:
|
|
16
|
+
|
|
17
|
+
- **`list_runline_actions`** — enumerate available actions with input schemas. Optional `plugin` filter.
|
|
18
|
+
- **`execute_runline`** — run JavaScript in runline's QuickJS sandbox. Every enabled plugin is a top-level global; `return` surfaces the result; logs are captured.
|
|
19
|
+
|
|
20
|
+
## `/runline-plugins` — the picker
|
|
8
21
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
22
|
+
Typing `/runline-plugins` in a pi session opens a fuzzy multi-select over all 188 built-in plugins.
|
|
23
|
+
|
|
24
|
+
```
|
|
25
|
+
╭─────────────────────────────────────────────╮
|
|
26
|
+
│ runline plugins · 5/188 enabled │
|
|
27
|
+
│ type to filter · space toggle · ^A toggle │
|
|
28
|
+
│ │
|
|
29
|
+
│ filter ❯ gith │
|
|
30
|
+
│ │
|
|
31
|
+
│ ❯ ◉ github 34 actions │
|
|
32
|
+
│ ◯ gitlab 17 actions │
|
|
33
|
+
│ ... │
|
|
34
|
+
╰─────────────────────────────────────────────╯
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
Keys: `type` to filter · `↑/↓` to move · `space` to toggle · `Ctrl-A` to toggle all visible · `enter` to save · `esc` to cancel.
|
|
38
|
+
|
|
39
|
+
After saving, any newly-enabled plugin with a `connectionConfigSchema` that doesn't already have a connection (and can't be fully resolved from env vars) will prompt you field-by-field for credentials. Values are written to `.runline/config.json` under `connections[]`.
|
|
14
40
|
|
|
15
41
|
## Configuration
|
|
16
42
|
|
|
17
43
|
### Per-project — `.runline/config.json`
|
|
18
44
|
|
|
19
45
|
```json
|
|
20
|
-
{
|
|
46
|
+
{
|
|
47
|
+
"showStatus": true,
|
|
48
|
+
"piPlugins": ["github", "slack", "linear"],
|
|
49
|
+
"connections": [
|
|
50
|
+
{ "name": "github", "plugin": "github", "config": { "token": "ghp_..." } }
|
|
51
|
+
]
|
|
52
|
+
}
|
|
21
53
|
```
|
|
22
54
|
|
|
23
|
-
|
|
55
|
+
- **`piPlugins`** — the allowlist the extension uses. If missing or empty, nothing is exposed to the agent and the status bar says `runline: /runline-plugins to enable`.
|
|
56
|
+
- **`showStatus`** — set to `false` to silence the status bar entry for this project.
|
|
57
|
+
- **`connections`** — standard runline connections (shared with the CLI and SDK).
|
|
24
58
|
|
|
25
59
|
### Global — `~/.pi/agent/runline.json`
|
|
26
60
|
|
|
@@ -28,8 +62,10 @@ Silences the status bar for this project.
|
|
|
28
62
|
{ "project": "~/Projects/my-runline-project" }
|
|
29
63
|
```
|
|
30
64
|
|
|
31
|
-
|
|
65
|
+
Fallback used when the current cwd has no `.runline/` anywhere up the tree. Useful when you want the runline tools available in every pi session without scattering `.runline/` folders.
|
|
32
66
|
|
|
33
|
-
##
|
|
67
|
+
## How plugin allow-listing works
|
|
68
|
+
|
|
69
|
+
The extension deliberately exposes nothing by default. That's on purpose — 2,410 actions is a lot of context budget. You pick the plugins that matter for a given project, commit the allowlist to `.runline/config.json`, and the agent only ever sees (and can only discover via `list_runline_actions`) the ones you enabled.
|
|
34
70
|
|
|
35
|
-
|
|
71
|
+
Note that the QuickJS sandbox itself still registers every runline plugin as a global, so in principle an agent could guess and call a disabled plugin. In practice the catalog injection and `list_runline_actions` output are the only surface the agent knows about, and unconfigured plugins error out at first action call anyway. Plumbing the allowlist into the sandbox globals is on the roadmap.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "pi-runline",
|
|
3
|
-
"version": "0.1
|
|
3
|
+
"version": "0.2.1",
|
|
4
4
|
"description": "Code mode for pi",
|
|
5
5
|
"type": "commonjs",
|
|
6
6
|
"keywords": ["pi-package"],
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
"@mariozechner/pi-coding-agent": "*",
|
|
19
19
|
"@mariozechner/pi-tui": "*",
|
|
20
20
|
"@sinclair/typebox": "*",
|
|
21
|
-
"runline": "
|
|
21
|
+
"runline": "^0.2.1"
|
|
22
22
|
},
|
|
23
23
|
"author": "michaelliv",
|
|
24
24
|
"license": "MIT"
|