@delorenj/pjangler 1.2.33 → 1.3.7

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.
Files changed (38) hide show
  1. package/README.md +72 -0
  2. package/dist/index.js +4754 -2564
  3. package/dist/mcp-server.js +4516 -2141
  4. package/dist/prompt.js +404 -0
  5. package/package.json +7 -5
  6. package/templates/commonproject/copier.yml +6 -1
  7. package/templates/commonproject/template/.agents/hooks/README.md +10 -10
  8. package/templates/commonproject/template/.agents/hooks/hooks.master.json +1 -1
  9. package/templates/commonproject/template/.agents/hooks/sync.py +4 -4
  10. package/templates/commonproject/template/.agents/local.example.json +1 -1
  11. package/templates/commonproject/template/.mise/scripts/hindsight-setup.sh +1 -1
  12. package/templates/commonproject/template/.mise/scripts/provision-packs.py +14 -50
  13. package/templates/commonproject/template/mise.toml.jinja +11 -11
  14. package/templates/hermes-agent/copier.yml +34 -14
  15. package/templates/hermes-agent/template/.runtime-scaffold/.gitignore.jinja +44 -0
  16. package/templates/hermes-agent/template/.runtime-scaffold/README.md +11 -10
  17. package/templates/hermes-agent/template/.scripts/01-config.sh +13 -4
  18. package/templates/hermes-agent/template/.scripts/05-fleet-env.sh +18 -28
  19. package/templates/hermes-agent/template/.scripts/10-hermes-profile.sh +73 -14
  20. package/templates/hermes-agent/template/.scripts/20-runtime-repo.sh +37 -32
  21. package/templates/hermes-agent/template/.scripts/30-telegram.sh +18 -4
  22. package/templates/hermes-agent/template/.scripts/42-ticket-provider.sh +18 -1
  23. package/templates/hermes-agent/template/.scripts/70-systemd.sh +114 -24
  24. package/templates/hermes-agent/template/.scripts/80-registry.sh +19 -3
  25. package/templates/hermes-agent/template/.scripts/_lib.sh +74 -11
  26. package/templates/hermes-agent/template/.scripts/checkpoint.sh +29 -1
  27. package/templates/hermes-agent/template/.scripts/config.example.toml +7 -4
  28. package/templates/hermes-agent/template/.scripts/credential-launch.sh +81 -0
  29. package/templates/hermes-agent/template/.scripts/heartbeat.sh +15 -2
  30. package/templates/hermes-agent/template/.scripts/lib/fleet-env.sh +202 -0
  31. package/templates/hermes-agent/template/.scripts/lib/parse-fleet-env.py +734 -0
  32. package/templates/hermes-agent/template/.scripts/lifecycle.sh +126 -0
  33. package/templates/hermes-agent/template/.scripts/providers/plane.sh +31 -5
  34. package/templates/hermes-agent/template/.scripts/secret-scan.py +82 -16
  35. package/templates/hermes-agent/template/SOUL.md.jinja +48 -12
  36. package/templates/hermes-agent/template/hermes.jinja +51 -10
  37. package/templates/hermes-agent/template/momo.jinja +177 -0
  38. package/templates/hermes-agent/template/role.yaml.jinja +31 -21
@@ -2,25 +2,32 @@
2
2
  # The agent's actual state (memory, sessions, evolving SOUL) lives in the
3
3
  # ignored local runtime. This file is the immutable contract for this role.
4
4
 
5
- repo: {{ target_repo }}
6
- role: {{ role }}
7
- agent_id: {{ agent_id }}
8
- display_name: "{{ display_name }}"
9
- purpose: "{{ agent_purpose }}"
5
+ repo: {{ target_repo | tojson }}
6
+ role: {{ role | tojson }}
7
+ agent_id: {{ agent_id | tojson }}
8
+ display_name: {{ display_name | tojson }}
9
+ purpose: {{ agent_purpose | tojson }}
10
10
 
11
- # Inference target (empty = inherit from global ~/.hermes/config.yaml)
11
+ # Process-local gateway inference target (empty = inherit from shared
12
+ # ~/.hermes/config.yaml). key_env is a variable NAME only; its secret value is
13
+ # injected at runtime and must never be written here.
12
14
  model:
13
- provider: "{{ model_provider }}"
14
- name: "{{ model_name }}"
15
+ provider: {{ model_provider | tojson }}
16
+ name: {{ model_name | tojson }}
17
+ base_url: {{ model_base_url | tojson }}
18
+ api_mode: {{ model_api_mode | tojson }}
19
+ key_env: {{ model_key_env | tojson }}
15
20
 
16
- # Hermes profile name. ~/.hermes/profiles/<name> symlinks to ./runtime/, so both
17
- # HERMES_HOME and `hermes --profile <name>` resolve to the local runtime.
18
- profile: {{ agent_id }}
21
+ # Hermes profile name. ~/.hermes/profiles/<name> is a REAL directory managed by
22
+ # `pj migrate hermes.runtime-singleton`: shared config/auth/skills link to the
23
+ # fleet root while role-owned state links into ./runtime. Never replace the
24
+ # named profile with a symlink to runtime.
25
+ profile: {{ agent_id | tojson }}
19
26
 
20
27
  # Telegram bot identity (one bot per agent — see docs/architecture.md).
21
28
  telegram:
22
29
  provisioning_status: "deferred"
23
- bot_username: "{{ bot_handle }}"
30
+ bot_username: {{ bot_handle | tojson }}
24
31
  bot_id: ""
25
32
 
26
33
  # Slack is opt-in. Credentials live only in runtime/.env; this block records
@@ -37,14 +44,14 @@ slack:
37
44
  # The heartbeat reconciliation pass talks ONLY to this via .scripts/lib/ticket-provider.sh;
38
45
  # swapping providers is a one-line change here. Filled in by 42-ticket-provider.sh.
39
46
  ticket_provider:
40
- name: {{ ticket_provider }}
47
+ name: {{ ticket_provider | tojson }}
41
48
  board_id: ""
42
49
  board_url: ""
43
50
  {%- if ticket_provider == 'linear' %}
44
51
  team: "" # Linear team key, e.g. DEL (set before first sentinel run)
45
52
  project: "" # optional Linear project name to scope milestones/issues
46
53
  {%- elif ticket_provider == 'plane' %}
47
- workspace: "{{ plane_workspace }}"
54
+ workspace: {{ plane_workspace | tojson }}
48
55
  project: "" # Plane project uuid (set by 42-ticket-provider.sh)
49
56
  {%- elif ticket_provider == 'trello' %}
50
57
  board: "" # Trello board id (set by 42-ticket-provider.sh)
@@ -63,7 +70,7 @@ reconcile:
63
70
  # Plane project (1:1 with this agent) — retained for fleet-registry back-compat.
64
71
  plane:
65
72
  # Empty -> resolved from ~/.config/hermes-agent-template/config.toml [plane].workspace
66
- workspace: "{{ plane_workspace }}"
73
+ workspace: {{ plane_workspace | tojson }}
67
74
  # identifier is set by .scripts/42-ticket-provider.sh after creation (plane only)
68
75
  identifier: ""
69
76
 
@@ -71,16 +78,19 @@ plane:
71
78
  # reads the fleet registry and routes canonical commands by target_agent_id;
72
79
  # this profile does not install its own NATS consumer or inbox bridge.
73
80
  bloodbank:
81
+ # Quarantine gate: discovery is safe; execution requires explicit activation.
82
+ enabled: false
74
83
  gateway_scope: fleet
75
- target_agent_id: "{{ agent_id }}"
76
- producer: "hermes-agent:{{ agent_id }}"
84
+ target_agent_id: {{ agent_id | tojson }}
85
+ producer: {{ ("hermes-agent:" ~ agent_id) | tojson }}
77
86
 
78
- # Pure-local HERMES_HOME. The legacy GitHub identity remains metadata-only for
79
- # locating old archives; provisioning never creates or attaches a submodule.
87
+ # Pure-local role-owned state. HERMES_HOME itself is the named profile directory
88
+ # above; the legacy GitHub identity remains metadata-only for locating old
89
+ # archives, and provisioning never creates or attaches a submodule.
80
90
  runtime:
81
91
  # Empty owner -> resolved from config.toml [github].runtime_repo_owner.
82
- github_owner: "{{ runtime_repo_owner }}"
83
- github_repo: "{{ runtime_repo }}"
92
+ github_owner: {{ runtime_repo_owner | tojson }}
93
+ github_repo: {{ runtime_repo | tojson }}
84
94
  local_path: "./runtime"
85
95
  checkpoint:
86
96
  cadence: "disabled"