@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
package/README.md CHANGED
@@ -18,6 +18,77 @@ node dist/index.js --help
18
18
  pjangler --help
19
19
  ```
20
20
 
21
+ ## Orienting in a repo
22
+
23
+ `describe` reads a repo and reports what it actually is — detected type,
24
+ installed subsystems, config files present, and what to do next. It is the
25
+ first call for an agent (or a human) landing somewhere unfamiliar, and it works
26
+ in any repo, 33GOD or not.
27
+
28
+ ```bash
29
+ pjangler describe # current directory
30
+ pjangler describe ../some-repo
31
+ pjangler describe --json # machine-parseable, for agent context
32
+ pjangler describe --interactive # tick off fixable findings, press A to apply
33
+ ```
34
+
35
+ Subsystem presence and subsystem correctness are reported separately: presence
36
+ comes from marker files on disk, parity from the recipe's own audit rules. A
37
+ subsystem that was never installed reads `absent`, not `broken`.
38
+
39
+ ### Last activity, not lifecycle status
40
+
41
+ Projects report **when work last happened**, not a lifecycle word. The old
42
+ `status` field said `planned` for 22 of 27 registered projects — including ones
43
+ with commits the same day — so it never varied and never informed.
44
+
45
+ Activity is computed from git at read time, so it cannot go stale and no cron
46
+ has to walk the registry. It spans more than the checked-out branch:
47
+
48
+ | source | covers |
49
+ | --- | --- |
50
+ | refs | every local branch, remote-tracking branch, and tag |
51
+ | worktrees | every linked worktree's HEAD, including detached ones whose commits are on no ref |
52
+ | uncommitted | working-tree edits that are not committed yet |
53
+
54
+ The newest of those wins, and the winning source is always reported. Remote
55
+ state reflects your last fetch — nothing here touches the network.
56
+
57
+ `pjangler project list` orders by that signal, newest work first.
58
+
59
+ ## Shell prompt
60
+
61
+ `pjangler-prompt` prints one compact line when the working directory is inside a
62
+ pjangler project, and nothing at all when it is not:
63
+
64
+ ```
65
+ pjangler (PJAN) · 3m
66
+ ```
67
+
68
+ It is a separate binary from the main CLI on purpose — the CLI loads the whole
69
+ parity rule set and takes ~52ms to boot, while this runs in ~30ms, well inside
70
+ starship's 500ms budget.
71
+
72
+ Add it to `~/.config/starship.toml` as a second, project-scoped prompt line:
73
+
74
+ ```toml
75
+ format = "…$all${custom.pjangler}$line_break$character"
76
+
77
+ [custom.pjangler]
78
+ description = "pjangler project context"
79
+ when = true
80
+ shell = ["sh"]
81
+ symbol = "◆"
82
+ style = "bold purple"
83
+ # The newline lives INSIDE the conditional group, so nothing is emitted —
84
+ # not even a blank line — outside a pjangler project.
85
+ format = "(\n[$symbol $output]($style))"
86
+ command = 'exec pjangler-prompt 2>/dev/null'
87
+ ```
88
+
89
+ `$line_break` must be named explicitly: it is otherwise absorbed by `$all` and
90
+ the extra line lands in the wrong place.
91
+
21
92
  ## MCP server usage
22
93
 
23
94
  Run over stdio:
@@ -38,6 +109,7 @@ Exposed tools:
38
109
  - `pjangler_project_init`
39
110
  - `pjangler_project_list`
40
111
  - `pjangler_project_show`
112
+ - `pjangler_describe_project`
41
113
  - `pjangler_describe_recipe`
42
114
  - `pjangler_run_recipe`
43
115
  - `pjangler_deploy_hermes_agent`