@litfamily/lithermes 1.0.2 → 1.0.4

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 (27) hide show
  1. package/README.md +4 -3
  2. package/README_Ko-KR.md +4 -3
  3. package/assets/lithermes-plugin/README.md +20 -14
  4. package/assets/lithermes-plugin/__init__.py +9 -52
  5. package/assets/lithermes-plugin/core_contexts.py +2 -9
  6. package/assets/lithermes-plugin/core_contract.py +2 -2
  7. package/assets/lithermes-plugin/core_routing.py +0 -2
  8. package/assets/lithermes-plugin/handoff.py +3 -3
  9. package/assets/lithermes-plugin/lit_mark.py +57 -8
  10. package/assets/lithermes-plugin/payload-version.json +16 -32
  11. package/assets/lithermes-plugin/plugin.yaml +1 -1
  12. package/assets/lithermes-plugin/scientific_visualization.py +3 -3
  13. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/complete-contract.md +3 -3
  14. package/assets/lithermes-plugin/skills/lit-handoff/SKILL.md +4 -3
  15. package/assets/lithermes-plugin/skills/lit-scientific-visualization/SKILL.md +4 -3
  16. package/assets/lithermes-plugin/skills/litwork/SKILL.md +4 -3
  17. package/assets/lithermes-plugin/skills/visual-qa/references/complete-contract.md +3 -3
  18. package/package.json +1 -1
  19. package/readme-assets/badge-version.svg +1 -1
  20. package/readme-assets/cover-motion.webp +0 -0
  21. package/src/cli.js +1 -11
  22. package/src/lib/skillPayload.js +1 -1
  23. package/assets/lithermes-plugin/skill_loop.py +0 -2044
  24. package/assets/lithermes-plugin/skill_observer.py +0 -1778
  25. package/assets/lithermes-plugin/skills/skill-observer/SKILL.md +0 -190
  26. package/assets/lithermes-plugin/skills/skill-observer/references/review-contract.md +0 -77
  27. package/src/lib/skillLoop.js +0 -62
@@ -26,9 +26,10 @@ surfaces:
26
26
  after_payload_edit: npm --prefix packages/lithermes-installer run sync-plugin -- --in-place
27
27
  ```
28
28
 
29
- The first model-emitted line for this skill MUST be exactly:
29
+ The first model-emitted line for this skill MUST be exactly this line, once,
30
+ on its own, before any other reply content:
30
31
 
31
- `▲ LIT · lit-handoff`
32
+ `🔥 **LIT IGNITED · lit-handoff** 🔥`
32
33
 
33
34
  ## #contract.inputs
34
35
 
@@ -87,7 +88,7 @@ The first model-emitted line for this skill MUST be exactly:
87
88
  "schema_version": "lithermes_llm_contract/v1",
88
89
  "skill_id": "lit-handoff",
89
90
  "response": {
90
- "first_line": "▲ LIT · lit-handoff",
91
+ "first_line": "🔥 **LIT IGNITED · lit-handoff** 🔥",
91
92
  "destination": "resolved HANDOFF.md path",
92
93
  "verified_state": ["live facts used"],
93
94
  "remaining_work": ["bounded next actions"],
@@ -31,9 +31,10 @@ dependency_policy: lazy preflight; DEGRADED is non-fatal
31
31
  after_payload_edit: npm --prefix packages/lithermes-installer run sync-plugin -- --in-place
32
32
  ```
33
33
 
34
- The first model-emitted line for this skill MUST be exactly:
34
+ The first model-emitted line for this skill MUST be exactly this line, once,
35
+ on its own, before any other reply content:
35
36
 
36
- `▲ LIT · lit-scientific-visualization`
37
+ `🔥 **LIT IGNITED · lit-scientific-visualization** 🔥`
37
38
 
38
39
  ## #contract.inputs
39
40
 
@@ -103,7 +104,7 @@ The first model-emitted line for this skill MUST be exactly:
103
104
  "schema_version": "lithermes_llm_contract/v1",
104
105
  "skill_id": "lit-scientific-visualization",
105
106
  "response": {
106
- "first_line": "▲ LIT · lit-scientific-visualization",
107
+ "first_line": "🔥 **LIT IGNITED · lit-scientific-visualization** 🔥",
107
108
  "capability": "READY or DEGRADED",
108
109
  "source_root": "resolved installed path",
109
110
  "artifacts": ["figure paths and formats"],
@@ -175,8 +175,9 @@ work cannot complete; terminal cancel/complete reuse returns the existing state.
175
175
 
176
176
  <litwork-mode>
177
177
 
178
- **MANDATORY**: First model-emitted line this turn MUST be exactly:
179
- `▲ LIT · litwork`
178
+ **MANDATORY**: The first model-emitted line this turn MUST be exactly this
179
+ line, once, on its own, before any other reply content:
180
+ `🔥 **LIT IGNITED · litwork** 🔥`
180
181
 
181
182
  [CODE RED] Maximum precision. Outcome-first. Evidence-driven.
182
183
 
@@ -395,7 +396,7 @@ message + present for approval.
395
396
  those candidates and record the cleanup receipt.
396
397
 
397
398
  # Output discipline
398
- - First line literally: `▲ LIT · litwork`
399
+ - First line exactly once, on its own before any other reply content: `🔥 **LIT IGNITED · litwork** 🔥`
399
400
  - After bootstrap: 1-2 paragraph plan summary + notepad path.
400
401
  - During execution: surface only state changes (RED captured, GREEN
401
402
  captured, scenario PASS/FAIL with evidence paths, reviewer verdict).
@@ -485,7 +485,7 @@ isolated Hermes home. Use `--hermes-home`; never `--home`.
485
485
 
486
486
  ```text
487
487
  $ node packages/lithermes-installer/bin/lithermes.js install --yes --offline --no-hud --hermes-home "$ISOLATED"
488
- Installed LitHermes 1.0.2
488
+ Installed LitHermes 1.0.4
489
489
  plugin: $ISOLATED/plugins/lithermes
490
490
  model config: updated
491
491
 
@@ -502,8 +502,8 @@ installed payload: PASS
502
502
  enabled config: PASS
503
503
 
504
504
  $ hermes lithermes doctor
505
- [OK] plugin.yaml readable (version 1.0.2)
506
- [OK] skills bundled: 32
505
+ [OK] plugin.yaml readable (version 1.0.4)
506
+ [OK] skills bundled: 31
507
507
  [OK] litgoal durable runtime importable
508
508
  ```
509
509
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@litfamily/lithermes",
3
- "version": "1.0.2",
3
+ "version": "1.0.4",
4
4
  "description": "npx/bunx installer for the LitHermes Hermes plugin",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -1 +1 @@
1
- <svg xmlns="http://www.w3.org/2000/svg" width="146" height="20" role="img" aria-label="release: 1.0.2"><title>release: 1.0.2</title><g shape-rendering="crispEdges"><rect width="49" height="20" fill="#080d14"/><rect x="49" width="97" height="20" fill="#ff6337"/></g><g fill="#fff" text-anchor="middle" font-family="Verdana,Geneva,DejaVu Sans,sans-serif" text-rendering="geometricPrecision" font-size="110"><text x="255" y="140" textLength="390" transform="scale(.1)">release</text><text x="965" y="140" textLength="870" transform="scale(.1)" fill="#080D14">1.0.2</text></g></svg>
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="146" height="20" role="img" aria-label="release: 1.0.4"><title>release: 1.0.4</title><g shape-rendering="crispEdges"><rect width="49" height="20" fill="#080d14"/><rect x="49" width="97" height="20" fill="#ff6337"/></g><g fill="#fff" text-anchor="middle" font-family="Verdana,Geneva,DejaVu Sans,sans-serif" text-rendering="geometricPrecision" font-size="110"><text x="255" y="140" textLength="390" transform="scale(.1)">release</text><text x="965" y="140" textLength="870" transform="scale(.1)" fill="#080D14">1.0.4</text></g></svg>
Binary file
package/src/cli.js CHANGED
@@ -6,7 +6,6 @@ const { checkLitHermes, doctorLitHermes } = require("./lib/check");
6
6
  const { createSpinner, renderInstallReceipt, shouldUseSpinner } = require("./lib/spinner");
7
7
  const { listHud, applyHud, clearHud, promptAccent, resolveHome } = require("./lib/hud");
8
8
  const { supportsColor, findAccent, skinName } = require("./lib/skins");
9
- const { runSkillLoop } = require("./lib/skillLoop");
10
9
  const {
11
10
  readConfig,
12
11
  clearDisplaySkinConfig,
@@ -58,7 +57,7 @@ function packageVersion() {
58
57
  function printCommandBanner(command, flags, runtime = {}) {
59
58
  // Keep machine-oriented routes byte-stable: their stdout is consumed as a
60
59
  // version line or JSON receipt rather than a human-facing command report.
61
- if (flags.json || command === "version" || command === "skill-loop" || command === "__auto-update") return;
60
+ if (flags.json || command === "version" || command === "__auto-update") return;
62
61
  const env = runtime.env || process.env;
63
62
  const streams = runtime.streams || { stdout: process.stdout };
64
63
  const output = streams.stdout || process.stdout;
@@ -281,14 +280,6 @@ async function main(argv, runtime = {}) {
281
280
  }
282
281
  return;
283
282
  }
284
- if (command === "skill-loop") {
285
- const skillLoopArgs = positionals.slice(1);
286
- if (skillLoopArgs[0] === "reject" && typeof flags.reason === "string") {
287
- skillLoopArgs.push("--reason", flags.reason);
288
- }
289
- process.exitCode = runSkillLoop(skillLoopArgs, flags, runtime);
290
- return;
291
- }
292
283
  const lifecycle = await runLifecycleUpdateSafely(command, flags, runtime);
293
284
  if (lifecycle.status === "failed" && (lifecycle.state === "unknown" || lifecycle.rollback?.status === "failed")) {
294
285
  console.error("LitHermes automatic update left the Hermes home in an unknown state; run `lithermes doctor --offline --hermes-home PATH` before continuing.");
@@ -388,7 +379,6 @@ async function main(argv, runtime = {}) {
388
379
  " doctor [--offline] [--hermes-home PATH] [--hermes-repo PATH]",
389
380
  " uninstall [--yes] [--hermes-home PATH]",
390
381
  " hud [<accent>|off|--list] [--hermes-home PATH] (Hermes HUD skin accents)",
391
- " skill-loop review|propose <file>|list|apply <id>|reject <id> [--reason TEXT]|rollback <ledger-id>|curator",
392
382
  " version",
393
383
  ].join("\n"));
394
384
  }
@@ -20,7 +20,7 @@ const requiredSkills = [
20
20
  "lit-korean", "lit-comprehend", "lit-handoff", "lit-plan", "lit-recap",
21
21
  "lit-scientific-visualization", "litgoal", "litresearch", "litwork", "lsp",
22
22
  "lsp-setup", "lit-code", "refactor", "lit-burnoff", "review-work",
23
- "rules", "skill-observer", "start-work", "structural-search", "visual-qa", "wikify",
23
+ "rules", "start-work", "structural-search", "visual-qa", "wikify",
24
24
  ];
25
25
 
26
26
  function inspectManifest(manifest, verifySourceHash) {