hmgr 0.0.6 → 0.0.12
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/adapter/agents.js +14 -5
- package/dist/adapter/bundle-yaml.js +87 -0
- package/dist/adapter/claude-code.js +53 -12
- package/dist/adapter/dateisystem.js +85 -43
- package/dist/adapter/git.js +148 -0
- package/dist/adapter/heime.js +76 -0
- package/dist/adapter/hermes.js +16 -7
- package/dist/adapter/npm-registry.js +61 -0
- package/dist/adapter/paket-version.js +25 -0
- package/dist/adapter/umgebung.js +6 -1
- package/dist/adapter/verlauf-json.js +39 -0
- package/dist/adapter/wsl.js +212 -0
- package/dist/adapter/zustand-json.js +40 -12
- package/dist/cli/hilfe.js +197 -11
- package/dist/cli/main.js +376 -21
- package/dist/gui/hmgr-cli.js +44 -0
- package/dist/gui/main.js +445 -4
- package/dist/gui/preload.cjs +30 -2
- package/dist/gui/renderer/index.html +79 -16
- package/dist/gui/renderer/renderer.js +807 -286
- package/dist/gui/renderer/styles.css +89 -16
- package/dist/kern/anwendungsfaelle.js +687 -18
- package/dist/kern/modell.js +192 -1
- package/dist/kern/version.js +13 -0
- package/dist/ports/dateizugriff.js +1 -0
- package/dist/ports/harness.js +4 -0
- package/dist/ports/heime.js +1 -0
- package/dist/ports/verlauf.js +4 -0
- package/dist/ports/zustand.js +16 -1
- package/package.json +26 -5
package/dist/cli/hilfe.js
CHANGED
|
@@ -22,6 +22,10 @@ hmgr <kommando> [schalter]
|
|
|
22
22
|
plugin add <name> Plugin in ein Ziel legen (installieren oder Skills verlinken)
|
|
23
23
|
plugin remove <name> Plugin aus einem Ziel entfernen
|
|
24
24
|
plugin list Plugins der Marketplaces aller Quellen
|
|
25
|
+
bundle add <name> Bundle als Ganzes in ein Ziel installieren
|
|
26
|
+
bundle remove <name> Bundle als Ganzes aus einem Ziel entfernen
|
|
27
|
+
bundle sync [name] Installierte Bundles gegen ihre Definition ziehen
|
|
28
|
+
bundle list Bundles der bekannten Quellen
|
|
25
29
|
mcp add <name> MCP-Server aus dem Katalog in ein Ziel einhängen
|
|
26
30
|
mcp remove <name> MCP-Server aus einem Ziel aushängen
|
|
27
31
|
mcp migrate <name> MCP-Server aus der geteilten .mcp.json in den privaten Scope übernehmen
|
|
@@ -29,10 +33,13 @@ hmgr <kommando> [schalter]
|
|
|
29
33
|
sync [pfad] Ziel auf den Stand seines Zeigers bringen
|
|
30
34
|
update Alle Checkouts aktualisieren
|
|
31
35
|
status Ist-Zustand der Ziele
|
|
36
|
+
log Verlauf der letzten Läufe (Changelog)
|
|
32
37
|
harness list Harness-Typen mit Stand aktiv/inaktiv und vorhanden
|
|
33
38
|
harness enable <name> Harness-Typ aktivieren, hmgr richtet ihn künftig ein
|
|
34
39
|
harness disable <name> Harness-Typ deaktivieren, mit Angebot zum Säubern
|
|
40
|
+
harness home <name> Homedirs zeigen, umstellen oder ein zusätzliches eintragen
|
|
35
41
|
harness skills-dir <name> Verwalteten Skill-Ordner zeigen, festlegen oder entfernen
|
|
42
|
+
--version Versionsnummer von hmgr ausgeben
|
|
36
43
|
|
|
37
44
|
hmgr help <kommando> zeigt Schalter, Beispiele und Zusammenhänge.`;
|
|
38
45
|
const SOURCE = `hmgr source add <url|pfad> [--name <name>]
|
|
@@ -123,7 +130,8 @@ Arbeitsverzeichnis mit Zeiger bricht link ohne --local ab, der Link wird nicht g
|
|
|
123
130
|
|
|
124
131
|
Schalter:
|
|
125
132
|
--harness <name> claude-code, hermes oder agents, Standard claude-code
|
|
126
|
-
--ort <ort> home, dir:<pfad> oder profil:<name>, Standard home. profil
|
|
133
|
+
--ort <ort> home, wsl:<distro>, dir:<pfad> oder profil:<name>, Standard home. profil
|
|
134
|
+
kennt nur hermes, wsl:<distro> nur claude-code unter Windows (E78)
|
|
127
135
|
--quelle <teil> Teilstring der Quelle, wenn der Skill-Name in mehreren Quellen vorkommt
|
|
128
136
|
--version <spanne> Versionseinschränkung nach Composer-Regeln (etwa ^1.2) oder ein Tag- oder
|
|
129
137
|
Branchname. Nur mit Zeiger, also dir:<pfad> ohne --local (E33)
|
|
@@ -141,8 +149,10 @@ Häufige Fälle:
|
|
|
141
149
|
„liegt bereits ein fremder Eintrag": --ersetzen setzen oder vorher hmgr adopt <name>.
|
|
142
150
|
„gibt es keinen Zeiger": --version braucht ein Arbeitsverzeichnis mit composer.json und kein
|
|
143
151
|
--local. Ohne Zeiger den Link ohne --version legen.
|
|
152
|
+
„ist deaktiviert, hmgr legt dort keine Links an": erst hmgr harness enable <name>, dann erneut
|
|
153
|
+
link. Bestehende Links im deaktivierten Harness bleiben liegen (E76).
|
|
144
154
|
|
|
145
|
-
Siehe auch: hmgr help unlink, hmgr help sync, hmgr help adopt`;
|
|
155
|
+
Siehe auch: hmgr help unlink, hmgr help sync, hmgr help adopt, hmgr help harness`;
|
|
146
156
|
const UNLINK = `hmgr unlink <skill> [schalter]
|
|
147
157
|
|
|
148
158
|
Entfernt den Link aus dem Ziel und, wenn das Ziel an einen Zeiger gebunden ist, den Skill aus dem
|
|
@@ -153,7 +163,8 @@ Arbeitsverzeichnis mit Zeiger bricht unlink ohne --local ab, der Link bleibt lie
|
|
|
153
163
|
|
|
154
164
|
Schalter:
|
|
155
165
|
--harness <name> claude-code, hermes oder agents, Standard claude-code
|
|
156
|
-
--ort <ort> home, dir:<pfad> oder profil:<name>, Standard home. profil
|
|
166
|
+
--ort <ort> home, wsl:<distro>, dir:<pfad> oder profil:<name>, Standard home. profil
|
|
167
|
+
kennt nur hermes, wsl:<distro> nur claude-code unter Windows (E78)
|
|
157
168
|
--composer <pfad> composer.json des Arbeitsverzeichnisses, wenn mehrere in Frage kommen
|
|
158
169
|
--local nur den Link entfernen, den Eintrag im Zeiger stehen lassen
|
|
159
170
|
|
|
@@ -179,7 +190,8 @@ Probelauf bleibt frei, er schreibt ohnehin nichts.
|
|
|
179
190
|
|
|
180
191
|
Schalter:
|
|
181
192
|
--harness <name> claude-code, hermes oder agents, Standard claude-code
|
|
182
|
-
--ort <ort> home, dir:<pfad> oder profil:<name>, Standard home. profil
|
|
193
|
+
--ort <ort> home, wsl:<distro>, dir:<pfad> oder profil:<name>, Standard home. profil
|
|
194
|
+
kennt nur hermes, wsl:<distro> nur claude-code unter Windows (E78)
|
|
183
195
|
--composer <pfad> composer.json des Arbeitsverzeichnisses, wenn mehrere in Frage kommen
|
|
184
196
|
--local Übernahme nicht in den Zeiger schreiben
|
|
185
197
|
--probelauf nur melden, nichts schreiben
|
|
@@ -212,7 +224,9 @@ verlinkt oder entfernt.
|
|
|
212
224
|
|
|
213
225
|
Schalter (add und remove):
|
|
214
226
|
--harness <name> claude-code, hermes oder agents, Standard claude-code
|
|
215
|
-
--ort <ort> home, dir:<pfad> oder profil:<name>, Standard home. profil kennt nur hermes
|
|
227
|
+
--ort <ort> home, dir:<pfad> oder profil:<name>, Standard home. profil kennt nur hermes.
|
|
228
|
+
Ein zusätzliches Homedir (wsl:<distro>) kennt die claude-CLI nicht, dort
|
|
229
|
+
gibt es keine Plugins (E78)
|
|
216
230
|
--composer <pfad> composer.json des Arbeitsverzeichnisses, wenn mehrere in Frage kommen
|
|
217
231
|
--local Plugin nicht in den Zeiger schreiben
|
|
218
232
|
--quelle <teil> nur bei add: Quelle eingrenzen, wenn der Name in mehreren Marketplaces steht
|
|
@@ -230,6 +244,90 @@ Häufige Fälle:
|
|
|
230
244
|
kann nur die Quelle beheben.
|
|
231
245
|
|
|
232
246
|
Siehe auch: hmgr help source, hmgr help sync`;
|
|
247
|
+
const BUNDLE = `hmgr bundle add <name> [schalter]
|
|
248
|
+
hmgr bundle remove <name> [schalter]
|
|
249
|
+
hmgr bundle sync [name] [schalter]
|
|
250
|
+
hmgr bundle list
|
|
251
|
+
|
|
252
|
+
Ein Bundle ist eine benannte Zusammenstellung von Skills über Quellen hinweg: was für ein Vorhaben
|
|
253
|
+
zusammengehört, liegt selten in einem Repo. Anders als ein Plugin (das lebt in einem Marketplace und
|
|
254
|
+
löst Abhängigkeiten nur dort auf) darf ein Bundle Skills aus beliebig vielen Quellen nennen.
|
|
255
|
+
|
|
256
|
+
Definiert wird es von Hand, als YAML-Datei in einer Quelle, Konvention bundles/<name>.yaml. hmgr
|
|
257
|
+
liest und validiert sie, schreibt sie nie — über die Quelle kommt sie versioniert auf alle
|
|
258
|
+
Maschinen. Es gibt keinen eigenen Katalog und keinen Pflegebefehl: bundle list zeigt, was beim
|
|
259
|
+
Quellen-Scan gefunden wurde.
|
|
260
|
+
|
|
261
|
+
Format der Datei:
|
|
262
|
+
|
|
263
|
+
name optional, sonst gilt der Dateiname ohne Endung
|
|
264
|
+
description Pflicht, kurzer Text
|
|
265
|
+
skills Pflicht, nicht leere Liste; je Eintrag source (URL oder Pfad der Quelle)
|
|
266
|
+
und path (Pfad des Skill-Ordners in dieser Quelle)
|
|
267
|
+
|
|
268
|
+
Beispiel bundles/wordpress.yaml:
|
|
269
|
+
|
|
270
|
+
name: wordpress
|
|
271
|
+
description: Alles für die WordPress-Arbeit
|
|
272
|
+
skills:
|
|
273
|
+
- source: git@gitea.example.com:tim/skills.git
|
|
274
|
+
path: skills/wp-core
|
|
275
|
+
- source: https://github.com/taquiri/skills
|
|
276
|
+
path: skills/tq-mailform
|
|
277
|
+
|
|
278
|
+
Ein Ref je Mitglied kennt die Definition nicht: der Link folgt dem Ref, mit dem die Quelle
|
|
279
|
+
eingerichtet ist. Angesprochen wird der Skill über seinen Pfad, nicht über seinen Namen — der Name
|
|
280
|
+
steht im Frontmatter und wird erst beim Lesen der Quelle bekannt.
|
|
281
|
+
|
|
282
|
+
Je Ziel ist das Bundle eine Einheit: add legt alle seine Links, remove nimmt alle wieder weg, sync
|
|
283
|
+
zieht Änderungen an der Definition nach. Nennt die Definition eine Quelle, die hmgr noch nicht
|
|
284
|
+
kennt, legt add sie an und sagt, welche neu sind. Lässt sich auch nur ein Mitglied nicht auflösen
|
|
285
|
+
oder liegt am Ziel ein Namenskonflikt, bricht add ab, bevor irgendetwas verlinkt oder eine Quelle
|
|
286
|
+
angelegt ist — ein halbes Bundle wäre stilles Fehlen von Skills. Wer nur einen Teil braucht,
|
|
287
|
+
verlinkt die erreichbaren Skills einzeln mit hmgr link.
|
|
288
|
+
|
|
289
|
+
Liegt am Ziel schon derselbe Skill aus derselben Quelle als hmgr-Link, wird er als Mitglied
|
|
290
|
+
übernommen: aus Bestand wird ein Bundle, ohne erst Links von Hand zu entfernen. Alles andere unter
|
|
291
|
+
demselben Namen ist ein Konflikt und wird genannt.
|
|
292
|
+
|
|
293
|
+
hmgr unlink <skill> auf ein einzelnes Mitglied zerbricht das Bundle in diesem Ziel: die übrigen
|
|
294
|
+
Links bleiben als einzelne Links liegen, der Bundle-Verweis fällt weg. Das ist kein Fehler, hmgr
|
|
295
|
+
sagt es nur.
|
|
296
|
+
|
|
297
|
+
Den Abgleich macht schon hmgr update für alle installierten Bundles mit, es ist derselbe Vorgang
|
|
298
|
+
und dieselbe Ausgabe (E69): eine geänderte Definition kommt also mit dem gewöhnlichen
|
|
299
|
+
Aktualisieren an, ohne dass man von der Änderung wissen müsste. bundle sync ist der gezielte Weg
|
|
300
|
+
daneben, wenn nur ein Bundle oder nur ein Ziel gemeint ist; ohne Namen und ohne Ziel-Schalter geht
|
|
301
|
+
es denselben Bestand durch wie update. Was sich nicht vollständig nachziehen lässt, bleibt in
|
|
302
|
+
seinem Ziel auf dem alten Stand und wird als fehlgeschlagen gemeldet.
|
|
303
|
+
|
|
304
|
+
Der Zeiger bleibt außen vor: die Zugehörigkeit der Links führt hmgr in seinem Zustand, nicht in der
|
|
305
|
+
composer.json. --local gibt es deshalb nicht, und die Sperre aus E57 trifft bundle nie.
|
|
306
|
+
|
|
307
|
+
Schalter (add, remove und sync):
|
|
308
|
+
--harness <name> claude-code, hermes oder agents, Standard claude-code
|
|
309
|
+
--ort <ort> home, wsl:<distro>, dir:<pfad> oder profil:<name>, Standard home. profil
|
|
310
|
+
kennt nur hermes, wsl:<distro> nur claude-code unter Windows (E78)
|
|
311
|
+
--composer <pfad> composer.json des Arbeitsverzeichnisses, wenn mehrere in Frage kommen
|
|
312
|
+
--quelle <teil> nur bei add: Quelle eingrenzen, wenn den Namen mehrere Quellen führen
|
|
313
|
+
|
|
314
|
+
Beispiele:
|
|
315
|
+
hmgr bundle list
|
|
316
|
+
hmgr bundle add wordpress --ort dir:.
|
|
317
|
+
hmgr bundle sync
|
|
318
|
+
hmgr bundle remove wordpress --ort dir:.
|
|
319
|
+
|
|
320
|
+
Häufige Fälle:
|
|
321
|
+
„steht in keiner Quelle": hmgr bundle list zeigt die bekannten Namen, sonst erst hmgr source add.
|
|
322
|
+
„liegt in mehreren Quellen": mit --quelle <teilstring> entscheiden.
|
|
323
|
+
„ist auf dieser Maschine nicht vollständig herstellbar": die Meldung nennt je Mitglied den Grund,
|
|
324
|
+
meist eine Quelle ohne Zugriff oder ein Pfad, an dem kein Skill (mehr) liegt.
|
|
325
|
+
„lässt sich in … nicht anlegen": die Meldung listet alle Namen, die am Ziel schon belegt sind.
|
|
326
|
+
„kein Bundle … installiert": hmgr status zeigt je Ziel seine Bundles.
|
|
327
|
+
„ist deaktiviert, hmgr legt dort keine Links an": bundle add braucht einen aktiven Harness, erst
|
|
328
|
+
hmgr harness enable <name>. bundle sync und bundle remove trifft die Sperre nicht (E76).
|
|
329
|
+
|
|
330
|
+
Siehe auch: hmgr help link, hmgr help plugin, hmgr help status, hmgr help harness`;
|
|
233
331
|
const MCP = `hmgr mcp add <name> [schalter]
|
|
234
332
|
hmgr mcp remove <name> [schalter]
|
|
235
333
|
hmgr mcp migrate <name> [schalter]
|
|
@@ -353,6 +451,18 @@ Plugin-Fähigkeit deren Plugins nach (E14). Die Links zeigen weiter auf dieselbe
|
|
|
353
451
|
nicht erneuert werden. Ein Checkout mit lokaler Änderung wird übersprungen und gemeldet (E15),
|
|
354
452
|
damit nichts verloren geht. Lokale Quellen haben keinen Checkout und bleiben unberührt.
|
|
355
453
|
|
|
454
|
+
Unter jeder „aktualisiert"-Zeile steht, welche Skills der neue Stand geändert hat (E70): die Namen
|
|
455
|
+
kommen aus dem Vergleich von altem und neuem Commit, gezählt werden nur Skills, die in diesem
|
|
456
|
+
Checkout auch ausgecheckt sind. Berührt ein Commit nur Dateien daneben (README, CI), bleibt die
|
|
457
|
+
Zeile weg.
|
|
458
|
+
|
|
459
|
+
Im selben Lauf gleicht update die installierten Bundles gegen ihre Definitionen ab (E69): eine
|
|
460
|
+
Definition, die inzwischen ein Mitglied mehr oder weniger nennt, wird in jedem Ziel nachgezogen, in
|
|
461
|
+
dem das Bundle hängt. Das ist der Weg, auf dem eine Bundle-Änderung aus einer Quelle ankommt — ohne
|
|
462
|
+
ihn müsste man von seinen eigenen Änderungen wissen, um sie zu holen. Was sich nicht vollständig
|
|
463
|
+
nachziehen lässt, bleibt in seinem Ziel auf dem alten Stand und wird als fehlgeschlagen gemeldet,
|
|
464
|
+
ohne den übrigen Lauf aufzuhalten. hmgr bundle sync macht dasselbe für ein einzelnes Bundle.
|
|
465
|
+
|
|
356
466
|
Danach räumt update verwaiste Ref-Verzeichnisse auf: Checkouts, in die kein Link mehr zeigt, weil
|
|
357
467
|
ein Link inzwischen auf einen anderen Ref umgelegt wurde. Vor dem Löschen fragt hmgr einmal für
|
|
358
468
|
alle Kandidaten. Ohne Bestätigung, also auch ohne Terminal, bleibt alles liegen und wird nur
|
|
@@ -361,6 +471,16 @@ gemeldet. Ein verwaister Checkout mit lokaler Änderung wird nie gelöscht (E15)
|
|
|
361
471
|
So wird eine Änderung an einem Skill überall wirksam: in der Quelle committen und pushen, dann
|
|
362
472
|
hmgr update.
|
|
363
473
|
|
|
474
|
+
Zum Schluss vergleicht update die eigene Version mit der auf npm veröffentlichten (E77). Ist dort
|
|
475
|
+
eine neuere, nennt eine letzte Zeile sie und den Befehl dazu (npm install -g hmgr@latest);
|
|
476
|
+
installiert wird nichts von selbst. Ohne Netz oder ohne neuere Version bleibt die Zeile weg.
|
|
477
|
+
|
|
478
|
+
Ergibt der Lauf mindestens ein Ereignis (aktualisierter Checkout, nachgezogenes Bundle,
|
|
479
|
+
aufgeräumter Checkout, ein Fehler), schreibt update denselben Eintrag auch in ~/.hmgr/verlauf.json
|
|
480
|
+
(E80) — dieselbe Datei, in die auch die GUI schreibt. hmgr log zeigt das Changelog. Plugins stehen
|
|
481
|
+
nicht im Verlauf: „claude plugin marketplace update" liefert keine Auskunft, ob sich etwas geändert
|
|
482
|
+
hat, eine Zeile dazu wäre geschönt.
|
|
483
|
+
|
|
364
484
|
Schalter: keine.
|
|
365
485
|
|
|
366
486
|
Beispiel:
|
|
@@ -373,10 +493,35 @@ Häufige Fälle:
|
|
|
373
493
|
„liegen lassen … ohne Bestätigung nicht gelöscht": die Frage kam ohne Ja zurück, etwa in einer
|
|
374
494
|
Pipe oder einem Composer-Script. In einem Terminal erneut hmgr update aufrufen.
|
|
375
495
|
|
|
376
|
-
Siehe auch: hmgr help sync, hmgr help status`;
|
|
496
|
+
Siehe auch: hmgr help sync, hmgr help status, hmgr help log`;
|
|
497
|
+
const LOG = `hmgr log
|
|
498
|
+
|
|
499
|
+
Zeigt den Verlauf der letzten Läufe aus ~/.hmgr/verlauf.json (E80), neueste zuerst: dieselbe Datei,
|
|
500
|
+
die hmgr update schreibt und die GUI bei jedem automatischen und angestoßenen Lauf schreibt und
|
|
501
|
+
liest. Ein Lauf ohne Ereignis (nichts Neues) steht nicht drin, die Datei ist ein Changelog, keine
|
|
502
|
+
vollständige Historie — sie hält die letzten 20 Einträge.
|
|
503
|
+
|
|
504
|
+
Je Eintrag steht eine Kopfzeile mit Datum und Uhrzeit, darunter je Ereignis eine Zeile: ein
|
|
505
|
+
aktualisierter Checkout mit Quelle, Ref und Commit-Stand samt geänderten Skills (E70), ein
|
|
506
|
+
nachgezogenes Bundle mit gelegten und entfernten Links, ein aufgeräumter (gelöschter) Checkout, ein
|
|
507
|
+
Fehler zu einer Quelle oder einem Bundle, dazu hmgr-Ereignisse: ein Versionssprung von hmgr selbst
|
|
508
|
+
(GUI oder CLI, erkannt beim Start bzw. bei jedem CLI-Aufruf) oder ein gefundenes Update, das noch
|
|
509
|
+
nicht installiert ist. Plugins stehen nicht im Verlauf (siehe hmgr help update).
|
|
510
|
+
|
|
511
|
+
Der Verlauf ist je Rechner: mehrere Maschinen führen ihre eigene Datei, es gibt kein Zusammenführen.
|
|
512
|
+
|
|
513
|
+
Schalter: keine.
|
|
514
|
+
|
|
515
|
+
Beispiel:
|
|
516
|
+
hmgr log
|
|
517
|
+
|
|
518
|
+
Häufige Fälle:
|
|
519
|
+
„Noch keine Ereignisse": entweder frisch installiert, oder jeder bisherige Lauf war ohne Fund.
|
|
520
|
+
|
|
521
|
+
Siehe auch: hmgr help update, hmgr help status`;
|
|
377
522
|
const STATUS = `hmgr status
|
|
378
523
|
|
|
379
|
-
Liest den Ist-Zustand vom Dateisystem: je Ziel eines vorhandenen Harness die Einträge mit Quelle
|
|
524
|
+
Liest den Ist-Zustand vom Dateisystem: je Ziel eines vorhandenen, aktiven Harness die Einträge mit Quelle
|
|
380
525
|
und Ref, davor die Versionseinschränkung, falls der Zeiger eine nennt. Dahinter steht der
|
|
381
526
|
abgeleitete Grund des Links: das Plugin, zu dem er gehört, oder „über Zeiger", von Hand gelegte
|
|
382
527
|
Links bleiben ohne Zusatz. Fremde Einträge und Links ohne bekannte Quelle sind eigens
|
|
@@ -394,11 +539,18 @@ Häufige Fälle:
|
|
|
394
539
|
Zustand steht. Mit hmgr source add <url> die Quelle wieder eintragen.
|
|
395
540
|
„Nicht vorhanden": der Harness hat sein Verzeichnis auf diesem Rechner nicht angelegt, hmgr
|
|
396
541
|
überspringt seine Ziele.
|
|
542
|
+
Ein Ziel fehlt: Ziele inaktiver Harness-Typen zeigt status nicht, auch wenn dort noch Links
|
|
543
|
+
liegen. hmgr harness list zeigt den Stand, hmgr harness enable <name> holt die Ziele zurück.
|
|
397
544
|
|
|
398
545
|
Siehe auch: hmgr help adopt, hmgr help sync`;
|
|
399
546
|
const HARNESS = `hmgr harness list
|
|
400
547
|
hmgr harness enable <name>
|
|
401
548
|
hmgr harness disable <name>
|
|
549
|
+
hmgr harness home <name>
|
|
550
|
+
hmgr harness home <name> set <pfad>
|
|
551
|
+
hmgr harness home <name> reset
|
|
552
|
+
hmgr harness home <name> add wsl:<distro>
|
|
553
|
+
hmgr harness home <name> remove wsl:<distro>
|
|
402
554
|
hmgr harness skills-dir <name> [--profil <name>]
|
|
403
555
|
hmgr harness skills-dir <name> add <pfad> [--profil <name>]
|
|
404
556
|
hmgr harness skills-dir <name> remove [--profil <name>]
|
|
@@ -411,9 +563,27 @@ alle bekannten Harness-Typen mit ihrem Stand: aktiv oder inaktiv, dazu vorhanden
|
|
|
411
563
|
|
|
412
564
|
disable säubert nicht von selbst: liegen noch eigene Links oder eine harness-eigene Konfiguration wie
|
|
413
565
|
Hermes' external_dirs-Eintrag, fragt hmgr, ob sie entfernt werden sollen. Ohne Terminal, etwa in einem
|
|
414
|
-
Script, gilt Nein und die Konfiguration bleibt liegen.
|
|
415
|
-
|
|
416
|
-
|
|
566
|
+
Script, gilt Nein und die Konfiguration bleibt liegen. In ein Ziel eines inaktiven Harness legt hmgr
|
|
567
|
+
keine Links mehr an (E76): hmgr link und hmgr bundle add brechen ab und nennen hmgr harness enable
|
|
568
|
+
<name> als Weg, auch mit ausdrücklich genanntem --harness. Bestehende Links bleiben liegen, hmgr sync
|
|
569
|
+
und hmgr unlink trifft die Sperre nicht.
|
|
570
|
+
|
|
571
|
+
home zeigt die Homedirs eines Harness (E78). set stellt das primäre um: hmgr merkt sich nur den neuen
|
|
572
|
+
Pfad und zeigt ab dann ihn, was am alten Ort liegt, bleibt unberührt liegen — wer umziehen will,
|
|
573
|
+
verlinkt am neuen Ort neu, einen Umzugsassistenten gibt es nicht. reset nimmt die Umstellung zurück,
|
|
574
|
+
ebenfalls ohne etwas zu verschieben.
|
|
575
|
+
|
|
576
|
+
add trägt ein zusätzliches Homedir ein, heute nur eines in einer WSL-Distro: Adresse wsl:<distro>,
|
|
577
|
+
ohne Benutzer-Option, denn wsl.exe startet als Standardbenutzer der Distro — derselbe, der Claude Code
|
|
578
|
+
dort nutzt. Das Home wird einmal ermittelt (wsl -d <distro> /bin/sh -c 'echo $HOME'), angezeigt und
|
|
579
|
+
gespeichert. Jedes Homedir ist danach ein eigenständiges Ziel: es steht als eigene Zeile im status und
|
|
580
|
+
wird mit --ort wsl:<distro> angesprochen. Gespiegelt wird nichts, jedes Ziel wird einzeln verlinkt.
|
|
581
|
+
Links dort legt hmgr über wsl.exe an; das Linkziel bleibt der vorhandene Windows-Checkout, übersetzt
|
|
582
|
+
nach /mnt/c. MCP-Server und Plugins gibt es dort nicht: die claude-CLI dieses Rechners bedient nur das
|
|
583
|
+
primäre Homedir. remove lässt hmgr das Homedir vergessen, die Links dort bleiben liegen.
|
|
584
|
+
|
|
585
|
+
Zusätzliche Homedirs kennt bisher nur claude-code, und nur unter Windows. Steht eines im Zustand,
|
|
586
|
+
etwa weil er von einem Windows-Rechner kommt, zeigt hmgr sein Ziel auf anderen Plattformen nicht.
|
|
417
587
|
|
|
418
588
|
skills-dir zeigt, legt fest oder entfernt den Ordner, aus dem Hermes externe Skills liest
|
|
419
589
|
(skills.external_dirs in seiner config.yaml, E13, E56). hmgr verwaltet je Ziel (Home oder ein Profil
|
|
@@ -433,14 +603,28 @@ Beispiele:
|
|
|
433
603
|
hmgr harness list
|
|
434
604
|
hmgr harness enable hermes
|
|
435
605
|
hmgr harness disable hermes
|
|
606
|
+
hmgr harness home claude-code
|
|
607
|
+
hmgr harness home claude-code set D:\\Profile\\tim
|
|
608
|
+
hmgr harness home claude-code add wsl:Ubuntu
|
|
609
|
+
hmgr link netzwerk --harness claude-code --ort wsl:Ubuntu
|
|
610
|
+
hmgr harness home claude-code remove wsl:Ubuntu
|
|
436
611
|
hmgr harness skills-dir hermes
|
|
437
612
|
hmgr harness skills-dir hermes add ~/.hermes/external-skills
|
|
438
613
|
hmgr harness skills-dir hermes remove --profil researcher
|
|
439
614
|
|
|
440
615
|
Häufige Fälle:
|
|
441
616
|
„ist kein bekannter Harness-Typ": hmgr harness list zeigt die bekannten Namen.
|
|
617
|
+
„ist deaktiviert, hmgr legt dort keine Links an": hmgr harness enable <name>, dann erneut link
|
|
618
|
+
bzw. bundle add (E76).
|
|
442
619
|
Konfiguration bleibt nach disable liegen, wenn die Rückfrage mit Nein oder ohne Terminal beantwortet
|
|
443
|
-
wird.
|
|
620
|
+
wird. hmgr status zeigt die Ziele des Typs dann nicht mehr (E74), sie erscheinen nach hmgr harness
|
|
621
|
+
enable <name> wieder. Ein erneutes hmgr harness disable <name> bietet das Säubern wieder an.
|
|
622
|
+
„ist keine Adresse für ein zusätzliches Homedir": add nimmt wsl:<distro>. Ein abweichender
|
|
623
|
+
normaler Pfad gehört an set, nicht an add.
|
|
624
|
+
„kennt keine zusätzlichen Homedirs": add und remove kennen heute nur claude-code.
|
|
625
|
+
„gibt es nur unter Windows": das WSL-Homedir wird auf dem Windows-Rechner eingetragen, auf dem
|
|
626
|
+
die Distro läuft.
|
|
627
|
+
„wsl.exe -d <distro> ließ sich nicht ausführen": wsl -l -q zeigt die installierten Distros.
|
|
444
628
|
„kennt keinen verwalteten Skill-Ordner": skills-dir kennt heute nur hermes.
|
|
445
629
|
„ist schon ein Skill-Ordner verwaltet": erst hmgr harness skills-dir <name> remove, dann add.
|
|
446
630
|
„ist kein Skill-Ordner verwaltet": remove kennt nur einen vorhandenen Eintrag, add legt ihn fest.
|
|
@@ -456,10 +640,12 @@ const THEMEN = new Map([
|
|
|
456
640
|
['unlink', UNLINK],
|
|
457
641
|
['adopt', ADOPT],
|
|
458
642
|
['plugin', PLUGIN],
|
|
643
|
+
['bundle', BUNDLE],
|
|
459
644
|
['mcp', MCP],
|
|
460
645
|
['sync', SYNC],
|
|
461
646
|
['update', UPDATE],
|
|
462
647
|
['status', STATUS],
|
|
648
|
+
['log', LOG],
|
|
463
649
|
['harness', HARNESS],
|
|
464
650
|
['help', HILFE],
|
|
465
651
|
]);
|