@kaiba-cloud/orbital-harness-pi 0.0.0-stage → 0.0.2

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 CHANGED
@@ -1,3 +1,122 @@
1
- # Temporary Holding Version
1
+ # Orbital harness: Pi
2
2
 
3
- This version is a temporary placeholder for this package. An operational version to replace this has been submitted for review and is awaiting a staged release.
3
+ `@kaiba-cloud/orbital-harness-pi` runs the agents of an [Orbital](https://www.npmjs.com/package/@kaiba-cloud/orbital) team on the [Pi coding agent](https://www.npmjs.com/package/@mariozechner/pi-coding-agent).
4
+ It is a harness plugin for the `harnesses` port of Orbital.
5
+ It has the harness id `pi` and the harness folder `.pi`.
6
+
7
+ Each turn runs Pi in the workspace of the session, on the model API of your provider key.
8
+ Pi has its own tools `read`, `bash`, `edit` and `write`.
9
+ The turn also gives Pi the orbital tools over MCP.
10
+
11
+ The package is not a program of its own.
12
+ It needs `@kaiba-cloud/orbital`, and Orbital runs it.
13
+
14
+ ## Install
15
+
16
+ 1. Install Orbital.
17
+
18
+ ```bash
19
+ npm i -g @kaiba-cloud/orbital
20
+ ```
21
+
22
+ 2. In your repository, install the harness.
23
+
24
+ ```bash
25
+ orbital install pi
26
+ ```
27
+
28
+ The command does these steps:
29
+
30
+ - It installs `@kaiba-cloud/orbital-harness-pi` at the version of Orbital in the plugin cache of the Orbital home.
31
+ - It writes `.pi/orbital.yaml` when the file is absent.
32
+ - It names the plugin in `.pi/orbital.yaml` as `npm:@kaiba-cloud/orbital-harness-pi@<version>`, so a clone of the project finds it.
33
+ - It prints a note that Pi reaches the orbital tools over MCP in each turn.
34
+
35
+ The install of this harness writes no other file.
36
+ A second run changes nothing.
37
+
38
+ | Flag | Meaning |
39
+ |---|---|
40
+ | `--plugin <source>` | Take the adapter from this plugin: an npm package, a git URL or a folder. |
41
+ | `--user` | Name the plugin in your user config, not in `.pi/orbital.yaml`. |
42
+ | `--force` | Overwrite a file or a setting that Orbital did not write. |
43
+ | `--workspace <path>` | The project. Default: the current directory. |
44
+
45
+ ## The provider key
46
+
47
+ A Pi turn calls a model with your key.
48
+ The agent names the model as `<provider>:<model>` in the `model:` key of its agent file.
49
+ Store the key of that provider on the machine.
50
+ Orbital asks for the key at a hidden prompt, or reads it from stdin.
51
+
52
+ ```bash
53
+ orbital providers set anthropic
54
+ ```
55
+
56
+ `orbital providers set` takes the providers `anthropic`, `openai`, `google` and `cloudflare`.
57
+
58
+ - The turn finds the key by the provider in the model name.
59
+ - Pi keeps the key in memory only.
60
+ - The sandbox of the node lets the turn reach the host of that provider.
61
+ - If the key is absent, the turn fails with the command that stores it.
62
+ - If the agent has no model, or the model has no `<provider>:` part, the turn fails and names the form.
63
+ - If Pi does not know the model, the turn fails with `Pi knows no model <provider>:<model>.`
64
+
65
+ ## An agent on Pi
66
+
67
+ An agent file in `.pi/agents` runs on `pi` by default.
68
+ Write the model in the file:
69
+
70
+ ```markdown
71
+ ---
72
+ name: auditor
73
+ description: Reads a change and reports the problems.
74
+ model: anthropic:claude-sonnet-5-5
75
+ ---
76
+ You audit a change in the workspace. You report each problem with its file and line.
77
+ ```
78
+
79
+ ## A team member on Pi
80
+
81
+ A member of a team runs on the harness that its charter names.
82
+ The charter is a harness folder file, such as `.claude/teams/review/CHARTER.md`.
83
+ The member `auditor` runs on Pi, and the lead runs on Claude Code:
84
+
85
+ ```markdown
86
+ ---
87
+ apiVersion: orbital/v1alpha1
88
+ name: review
89
+ objective: Review each change before it merges.
90
+ lead: lead
91
+ members:
92
+ - name: lead
93
+ harness: claude
94
+ - name: auditor
95
+ harness: pi
96
+ ---
97
+ The lead hands each change to the auditor and reports the result.
98
+ ```
99
+
100
+ The agent file of `auditor` can be in any harness folder of the project.
101
+ An agent name is unique in a project.
102
+ Run `orbital check` to check the team.
103
+
104
+ ## What the harness supports
105
+
106
+ | Feature | Support |
107
+ |---|---|
108
+ | Transcript | Supported. Each answer of Pi is a text part. Each reasoning block is a thinking part, and Pi marks some as redacted: the harness drops those. Each tool call is a tool call part, and each tool result is a tool result part. |
109
+ | Tools | Pi runs `read`, `bash`, `edit` and `write`. The orbital tools come from the MCP server that the turn gives, and each one is a Pi tool of the same name. An image in a tool result shows as `[image]`. |
110
+ | Telemetry | Supported. Each turn reports, for each model, the input, output, cache read and cache write tokens, the cost that Pi reports, and the count of model calls. |
111
+ | Resume | Supported. Pi writes its session files in the folder `pi` of the session folder. A later turn of the session continues the most recent file there. |
112
+ | Stop | Supported. SIGTERM and SIGINT abort the Pi session, and the turn exits with code 143. |
113
+ | Shared browser | Not supported. Pi has no browser tools. |
114
+ | Skills | Not supported. The turn starts Pi with the loading of skills turned off. |
115
+
116
+ ## Known limits
117
+
118
+ - A turn needs `model: <provider>:<model>` on the agent. Pi has no default model.
119
+ - The turn turns off the retry of Pi. A failed model call fails the turn.
120
+ - A turn that ends with a Pi error or an abort fails and gives the message of Pi as the reason.
121
+ - The package pins `@mariozechner/pi-coding-agent` and `@mariozechner/pi-ai` at version 0.73.1.
122
+ - The install of the harness connects nothing in the files of Pi. Each turn gives the orbital tools to Pi.