@delorenj/pjangler 1.2.17 → 1.2.19
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/dist/index.js +244 -6
- package/dist/mcp-server.js +245 -7
- package/package.json +8 -2
- package/templates/commonproject/AGENTS.md +3 -3
- package/templates/commonproject/README.md +11 -12
- package/templates/commonproject/copier.yml +8 -27
- package/templates/commonproject/template/.project.json.jinja +9 -13
- package/templates/hermes-agent/README.md +9 -9
- package/templates/hermes-agent/config.example.toml +1 -66
- package/templates/hermes-agent/copier.yml +4 -3
- package/templates/hermes-agent/docs/architecture.md +9 -12
- package/templates/hermes-agent/docs/fleet-control-plane/README.md +1 -1
- package/templates/hermes-agent/docs/operations.md +6 -5
- package/templates/hermes-agent/docs/sentinel/README.md +9 -7
- package/templates/hermes-agent/docs/sentinel/architecture.md +1 -2
- package/templates/hermes-agent/docs/sentinel/development.md +12 -13
- package/templates/hermes-agent/docs/sentinel/providers.md +34 -15
- package/templates/hermes-agent/install-local.sh +15 -14
- package/templates/hermes-agent/runtime-scaffold/README.md +1 -1
- package/templates/hermes-agent/runtime-scaffold/bloodbank-consumer.py +46 -14
- package/templates/hermes-agent/runtime-scaffold/memories/MEMORY.md +2 -2
- package/templates/hermes-agent/scripts/fleet-sync.sh +1 -64
- package/templates/hermes-agent/template/.gitignore.jinja +0 -2
- package/templates/hermes-agent/template/.runtime-scaffold/README.md +1 -1
- package/templates/hermes-agent/template/.runtime-scaffold/bloodbank-consumer.py +43 -9
- package/templates/hermes-agent/template/.runtime-scaffold/memories/MEMORY.md +2 -2
- package/templates/hermes-agent/template/.scripts/01-config.sh +0 -1
- package/templates/hermes-agent/template/.scripts/05-fleet-env.sh +0 -9
- package/templates/hermes-agent/template/.scripts/10-hermes-profile.sh +3 -22
- package/templates/hermes-agent/template/.scripts/20-runtime-repo.sh +0 -22
- package/templates/hermes-agent/template/.scripts/40-plane.sh +51 -0
- package/templates/hermes-agent/template/.scripts/42-ticket-provider.sh +59 -21
- package/templates/hermes-agent/template/.scripts/60-bloodbank.sh +2 -1
- package/templates/hermes-agent/template/.scripts/70-systemd.sh +1 -10
- package/templates/hermes-agent/template/.scripts/_lib.sh +3 -61
- package/templates/hermes-agent/template/.scripts/config.example.toml +0 -5
- package/templates/hermes-agent/template/.scripts/heartbeat.sh +22 -66
- package/templates/hermes-agent/template/.scripts/lib/ticket-provider.sh +5 -9
- package/templates/hermes-agent/template/.scripts/providers/linear.sh +176 -0
- package/templates/hermes-agent/template/.scripts/providers/plane.sh +9 -29
- package/templates/hermes-agent/template/.scripts/sentinel/docs/autonomous-delegated-review.md +2 -2
- package/templates/hermes-agent/template/.scripts/sentinel/docs/continuous-ticket-orchestration.md +1 -1
- package/templates/hermes-agent/template/.scripts/sentinel.prompt.md.jinja +1 -6
- package/templates/hermes-agent/template/SOUL.md.jinja +19 -21
- package/templates/hermes-agent/template/role.yaml.jinja +35 -4
- package/templates/hermes-agent/tests/test_bloodbank_consumer_contract.py +138 -0
- package/templates/hermes-agent/docs/bloodbank-gateway.md +0 -57
- package/templates/hermes-agent/docs/fleet-control-plane/n8n-service-hub.md +0 -60
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
# n8n Service Hub
|
|
2
|
-
|
|
3
|
-
n8n should become the visible service hub for fleet operations while systemd
|
|
4
|
-
remains the local survival layer.
|
|
5
|
-
|
|
6
|
-
## Shape
|
|
7
|
-
|
|
8
|
-
- systemd owns process supervision on each host.
|
|
9
|
-
- n8n owns visibility, operator controls, scheduling, and multi-service flows.
|
|
10
|
-
- pjangler owns deterministic generation and reconciliation of both sides.
|
|
11
|
-
|
|
12
|
-
## Service Model
|
|
13
|
-
|
|
14
|
-
Each installed Hermes agent service is represented as an n8n node/workflow item:
|
|
15
|
-
|
|
16
|
-
- gateway service
|
|
17
|
-
- Bloodbank gateway or transitional consumer
|
|
18
|
-
- heartbeat timer/service
|
|
19
|
-
- runtime checkpoint status
|
|
20
|
-
- ticket-provider health check
|
|
21
|
-
|
|
22
|
-
The node does not replace systemd. It calls stable commands such as:
|
|
23
|
-
|
|
24
|
-
```
|
|
25
|
-
systemctl --user status hermes-<agent>-heartbeat.timer
|
|
26
|
-
systemctl --user restart hermes-<agent>-gateway.service
|
|
27
|
-
pj fleet status --agent <agent_id> --json
|
|
28
|
-
pj fleet reconcile --agent <agent_id> --apply
|
|
29
|
-
```
|
|
30
|
-
|
|
31
|
-
## Heartbeat v2
|
|
32
|
-
|
|
33
|
-
Checkpoint era means the only recurring task was an hourly runtime
|
|
34
|
-
commit/push. It preserved state but did not manage work.
|
|
35
|
-
|
|
36
|
-
Heartbeat v2 is a frequent, cheap tick:
|
|
37
|
-
|
|
38
|
-
- always performs a gated runtime checkpoint
|
|
39
|
-
- optionally performs autonomous board reconciliation when
|
|
40
|
-
`.project.json automation.reconcile.enabled` is true
|
|
41
|
-
- records status in runtime state files for fleet status readers
|
|
42
|
-
- can be triggered by systemd locally or by n8n centrally
|
|
43
|
-
|
|
44
|
-
## First Implementation Pass
|
|
45
|
-
|
|
46
|
-
1. Extend `pj fleet status --json` to include service unit state, last heartbeat,
|
|
47
|
-
last checkpoint, and ticket-provider resolution.
|
|
48
|
-
2. Generate an n8n workflow from `~/.hermes/agents-registry.yaml`.
|
|
49
|
-
3. Add n8n actions for status, restart, reconcile dry-run, reconcile apply, and
|
|
50
|
-
log tail.
|
|
51
|
-
4. Keep systemd timers installed and enabled as fallback.
|
|
52
|
-
5. Add drift detection when n8n and systemd disagree about an agent.
|
|
53
|
-
|
|
54
|
-
## Open Questions
|
|
55
|
-
|
|
56
|
-
- Whether n8n should invoke local commands through SSH, an agent-side webhook,
|
|
57
|
-
or a small host-local control API.
|
|
58
|
-
- How much service history should live in n8n versus Hermes runtime state.
|
|
59
|
-
- Whether Bloodbank gateway events should also drive n8n workflows for visible
|
|
60
|
-
operator traces.
|