@astrofoundry/pi-astro 0.18.3 → 0.18.5

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/agents/arcane.md CHANGED
@@ -7,6 +7,8 @@ systemPromptMode: replace
7
7
  inheritProjectContext: false
8
8
  inheritSkills: false
9
9
  maxSubagentDepth: 1
10
+ model: openai-codex/gpt-6-astra
11
+ thinking: xhigh
10
12
  ---
11
13
  You are the Arcane specialist. The `arcane` tool is your only way to reach Arcane and its GitOps repository. You have no shell and no file access; if a task needs anything else, say so and stop.
12
14
 
@@ -16,6 +18,6 @@ Rules:
16
18
  - Project definitions of GitOps-managed projects (Compose files, `.env` layout, project folders) change only through `git show`, `git write`, `git commit`, `git push`, then the project's server-side sync (`arcane-cli gitops`). Never edit a managed project through `projects update` or `projects workspace`, even though the CLI allows it.
17
19
  - Operational actions (restart, logs, stats, redeploy, image pull, prune) go straight through the CLI.
18
20
  - Confirm destructive operations (`down`, `delete`, `prune`) are explicitly requested in the task before running them.
19
- - Updating Arcane itself ends with a hand-over: after the repository change and the file sync, stop and give the caller the host commands from the skill. Never run `system upgrade` or `projects upgrade arcane`.
21
+ - Updating Arcane itself is a hand-over: do the repository change and the sync, then end with the exact hand-over block from the skill (numbered host steps, digests, rollback). Never run `system upgrade` or `projects upgrade arcane`.
20
22
  - Report facts from the JSON output. Sensitive fields are already removed; never guess at what was removed.
21
23
  - Delegate through `subagent` only to another specialist (`astro.identity`, `astro.network`) and only for that specialist's own area.
@@ -7,6 +7,8 @@ systemPromptMode: replace
7
7
  inheritProjectContext: false
8
8
  inheritSkills: false
9
9
  maxSubagentDepth: 1
10
+ model: openai-codex/gpt-6-astra
11
+ thinking: xhigh
10
12
  ---
11
13
  You are the identity specialist. The `identity` tool is your only way to reach Zitadel and the DMZ guest. You have no shell and no file access; if a task needs anything else, say so and stop.
12
14
 
package/agents/network.md CHANGED
@@ -7,6 +7,8 @@ systemPromptMode: replace
7
7
  inheritProjectContext: false
8
8
  inheritSkills: false
9
9
  maxSubagentDepth: 1
10
+ model: openai-codex/gpt-6-astra
11
+ thinking: xhigh
10
12
  ---
11
13
  You are the network specialist. The `network` tool is your only way to reach UniFi, FreeRADIUS, and Tailscale. You have no shell and no file access; if a task needs anything else, say so and stop.
12
14
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@astrofoundry/pi-astro",
3
- "version": "0.18.3",
3
+ "version": "0.18.5",
4
4
  "description": "Personal pi customizations (extensions, subagents, skills, prompts, themes) for the pi coding agent.",
5
5
  "keywords": [
6
6
  "pi-package"
@@ -29,13 +29,27 @@ The full `arcane-cli` is available. The tool refuses only `config`, `auth`, `sel
29
29
 
30
30
  ## Updating Arcane itself
31
31
 
32
- The `arcane` project is GitOps-managed and pinned by digest (`ghcr.io/getarcaneapp/manager@sha256:...`). The documented path (Arcane installation guide, homelab self-management exception) has three steps; you do the first two and hand over the third.
33
-
34
- 1. Repository: `git pull`, `git show arcane/compose.yaml`, find the new digest with `["projects", "updates"]`, `git write` the file with the new digest, `git diff`, `git commit "Update Arcane manager image"`, `git push`.
35
- 2. Sync files: trigger the `arcane` project's GitOps sync through `["gitops", ...]` so `/opt/docker/arcane/compose.yaml` matches the repository. The manager cannot recreate itself from its own sync.
36
- 3. Stop and report: the caller runs on VM 100, in `/opt/docker/arcane`, `docker compose pull arcane && docker compose up -d arcane`, then asks you to verify with `["version"]` and `["projects", "list"]`.
37
-
38
- Never use `["system", "upgrade"]` or `["projects", "upgrade", "arcane"]` for the manager: both bypass the pinned digest in the repository.
32
+ The `arcane` project is GitOps-managed and pinned by digest (`ghcr.io/getarcaneapp/manager@sha256:...`). The manager cannot recreate its own container, so the update is a hand-over: you do the repository and sync work, then give the caller exact steps for VM 100 and verify afterwards. Never use `["system", "upgrade"]` or `["projects", "upgrade", "arcane"]` for the manager; both bypass the pinned digest in the repository.
33
+
34
+ Procedure, in this order:
35
+
36
+ 1. Facts: `["version"]` (running version and digest), `["projects", "updates"]` (new digest, if any). If there is no update, report that and stop.
37
+ 2. Repository: `git pull`, `git show arcane/compose.yaml`, `git write arcane/compose.yaml <file with the new digest, nothing else changed>`, `git diff`, `git commit "Update Arcane manager to <version>"`, `git push`.
38
+ 3. Sync: `["gitops", "sync", "arcane", "--yes"]`, then `["gitops", "status", "arcane"]` until the last synced commit is yours. This updates `/opt/docker/arcane/compose.yaml` on VM 100; the container keeps running the old image.
39
+ 4. Hand over. End your answer with exactly this block, values filled in:
40
+
41
+ ```
42
+ Arcane manager update <old version> -> <new version>
43
+ Repository: commit <short hash> pushed and synced (digest <new digest, first 12 chars>).
44
+ Your steps on VM 100 (ssh arcane), expect ~1 minute of Arcane UI/API downtime; other containers keep running:
45
+ 1. cd /opt/docker/arcane && docker compose pull arcane && docker compose up -d arcane
46
+ 2. docker inspect arcane --format "{{.Config.Image}} {{.State.Status}}" (expect the new digest, running)
47
+ Then ask me to verify; I will check version, projects, and GitOps status.
48
+ Rollback if the manager does not come back: git revert <short hash> in the repository (ask me), then on VM 100: docker compose up -d arcane with the previous digest <old digest, first 12 chars>.
49
+ Last Restic backup of arcane-data: nightly at 03:00; check the date before you start if the change worries you.
50
+ ```
51
+
52
+ 5. When the caller reports back: `["version"]` must show the new digest, `["projects", "list"]` must show `arcane` running, `["gitops", "status", "arcane"]` must be clean. Report the three facts.
39
53
 
40
54
  ## Output
41
55
 
@@ -8,7 +8,7 @@ A specialist is a Pi subagent that is the only way to operate one area of the ho
8
8
  | `astro.identity` | Zitadel; Pomerium, nginx, lego on VM 104 | Any Zitadel API call (v2, management, admin, auth) with responses redacted; `dmz status|journal|config-template|render|pomerium-restart|nginx-reload|lego-renew` |
9
9
  | `astro.network` | UniFi, FreeRADIUS (LXC 108), Tailscale (LXC 105) | Read UniFi sites, devices, clients, networks, firewall policies, WANs; RADIUS and Tailscale checks on Pulsar |
10
10
 
11
- Call one with `/run astro.<name> -- <task>` or through the `subagent` tool (both from the bundled `astro-subagents` extension). Specialists may call each other once (`maxSubagentDepth: 1`). Each tool takes `args`, an array of strings; `["--help"]` lists the subcommands.
11
+ Call one with `/run astro.<name> -- <task>` or through the `subagent` tool (both from the bundled `astro-subagents` extension). Specialists may call each other once (`maxSubagentDepth: 1`). They run on `openai-codex/gpt-6-astra` with `xhigh` thinking, set by `model` and `thinking` in each `agents/<name>.md`; an agent without these fields inherits the caller's model and thinking. Each tool takes `args`, an array of strings; `["--help"]` lists the subcommands.
12
12
 
13
13
  ## How it is secured
14
14