openhermes 4.3.0 → 4.11.2

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 (143) hide show
  1. package/CONTEXT.md +10 -1
  2. package/README.md +54 -42
  3. package/bootstrap.ts +396 -142
  4. package/harness/agents/oh-browser.md +97 -0
  5. package/harness/agents/oh-builder.md +78 -0
  6. package/harness/agents/oh-facade.md +75 -0
  7. package/harness/agents/oh-fusion.md +45 -0
  8. package/harness/agents/oh-gauntlet.md +71 -0
  9. package/harness/agents/oh-grill.md +71 -0
  10. package/harness/agents/oh-investigate.md +60 -0
  11. package/harness/agents/oh-manifest.md +95 -0
  12. package/harness/agents/oh-plan-review.md +40 -0
  13. package/harness/agents/oh-planner.md +50 -0
  14. package/harness/agents/oh-refactor.md +37 -0
  15. package/harness/agents/oh-retro.md +46 -0
  16. package/harness/agents/oh-review.md +85 -0
  17. package/harness/agents/oh-security.md +83 -0
  18. package/harness/agents/oh-ship.md +76 -0
  19. package/harness/agents/oh-skill-craft.md +38 -0
  20. package/harness/agents/openhermes.md +28 -73
  21. package/harness/codex/AUTOPILOT.md +235 -87
  22. package/harness/codex/CHARTER.md +80 -0
  23. package/harness/instructions/SHELL.md +76 -0
  24. package/harness/lib/background/background.test.ts +197 -0
  25. package/harness/lib/background/index.ts +7 -0
  26. package/harness/lib/background/interfaces.ts +31 -0
  27. package/harness/lib/background/manager.ts +320 -0
  28. package/harness/lib/composer/compose.test.ts +168 -0
  29. package/harness/lib/composer/compose.ts +65 -0
  30. package/harness/lib/composer/fragments/01-identity.md +1 -0
  31. package/harness/lib/composer/fragments/02-delegation.md +6 -0
  32. package/harness/lib/composer/fragments/03-permissions.md +13 -0
  33. package/harness/lib/composer/fragments/04-task-flow.md +15 -0
  34. package/harness/lib/composer/fragments/05-confidence.md +5 -0
  35. package/harness/lib/composer/fragments/06-parallelization.md +17 -0
  36. package/harness/lib/composer/fragments/07-shell.md +41 -0
  37. package/harness/lib/composer/fragments/08-routing.md +8 -0
  38. package/harness/lib/composer/fragments/09-guardrails.md +12 -0
  39. package/harness/lib/composer/index.ts +1 -0
  40. package/harness/lib/hooks/builtins/confidence-gate-hook.ts +70 -0
  41. package/harness/lib/hooks/builtins/delegation-depth-hook.ts +59 -0
  42. package/harness/lib/hooks/builtins/error-recovery-hook.ts +107 -0
  43. package/harness/lib/hooks/builtins/memory-sync-hook.ts +73 -0
  44. package/harness/lib/hooks/builtins/plan-check-hook.ts +43 -0
  45. package/harness/lib/hooks/builtins/route-tracking-hook.ts +147 -0
  46. package/harness/lib/hooks/builtins/sanity-check-hook.ts +52 -0
  47. package/harness/lib/hooks/builtins/shell-detect-hook.ts +96 -0
  48. package/harness/lib/hooks/hooks.test.ts +1016 -0
  49. package/harness/lib/hooks/index.ts +30 -0
  50. package/harness/lib/hooks/registry.ts +416 -0
  51. package/harness/lib/hooks/types.ts +71 -0
  52. package/harness/lib/memory/index.ts +18 -0
  53. package/harness/lib/memory/interfaces.ts +53 -0
  54. package/harness/lib/memory/memory-manager.ts +205 -0
  55. package/harness/lib/memory/memory.test.ts +491 -0
  56. package/harness/lib/memory/plan-store.ts +366 -0
  57. package/harness/lib/recovery/handler.ts +243 -0
  58. package/harness/lib/recovery/index.ts +14 -0
  59. package/harness/lib/recovery/interfaces.ts +48 -0
  60. package/harness/lib/recovery/patterns.ts +149 -0
  61. package/harness/lib/recovery/recovery.test.ts +312 -0
  62. package/harness/lib/sanity/anomaly-tracker.ts +127 -0
  63. package/harness/lib/sanity/checker.ts +178 -0
  64. package/harness/lib/sanity/index.ts +13 -0
  65. package/harness/lib/sanity/interfaces.ts +24 -0
  66. package/harness/lib/sanity/sanity.test.ts +472 -0
  67. package/harness/lib/sync/file-watcher.ts +174 -0
  68. package/harness/lib/sync/index.ts +11 -0
  69. package/harness/lib/sync/interfaces.ts +27 -0
  70. package/harness/lib/sync/plan-sync.ts +536 -0
  71. package/harness/lib/sync/sync.test.ts +832 -0
  72. package/harness/skills/oh-ascii/DEEP.md +292 -0
  73. package/harness/skills/oh-ascii/SKILL.md +31 -0
  74. package/harness/skills/oh-ascii/scripts/check_ascii_alignment.py +596 -0
  75. package/harness/skills/oh-browser/DEEP.md +54 -0
  76. package/harness/skills/oh-browser/SKILL.md +30 -0
  77. package/harness/skills/oh-builder/DEEP.md +63 -0
  78. package/harness/skills/oh-builder/SKILL.md +12 -90
  79. package/harness/skills/oh-expert/DEEP.md +85 -0
  80. package/harness/skills/oh-expert/SKILL.md +13 -106
  81. package/harness/skills/oh-facade/DEEP.md +182 -0
  82. package/harness/skills/oh-facade/SKILL.md +15 -279
  83. package/harness/skills/oh-freeze/DEEP.md +18 -0
  84. package/harness/skills/oh-freeze/SKILL.md +10 -19
  85. package/harness/skills/oh-full-output/DEEP.md +25 -0
  86. package/harness/skills/oh-full-output/SKILL.md +12 -65
  87. package/harness/skills/oh-fusion/DEEP.md +120 -0
  88. package/harness/skills/oh-fusion/SKILL.md +17 -295
  89. package/harness/skills/oh-gauntlet/DEEP.md +77 -0
  90. package/harness/skills/oh-gauntlet/SKILL.md +13 -105
  91. package/harness/skills/oh-grill/DEEP.md +51 -0
  92. package/harness/skills/oh-grill/SKILL.md +12 -63
  93. package/harness/skills/oh-guard/DEEP.md +19 -0
  94. package/harness/skills/oh-guard/SKILL.md +10 -24
  95. package/harness/skills/oh-handoff/DEEP.md +48 -0
  96. package/harness/skills/oh-handoff/SKILL.md +13 -23
  97. package/harness/skills/oh-health/DEEP.md +74 -0
  98. package/harness/skills/oh-health/SKILL.md +13 -76
  99. package/harness/skills/oh-init/DEEP.md +85 -0
  100. package/harness/skills/oh-init/SKILL.md +13 -127
  101. package/harness/skills/oh-investigate/DEEP.md +171 -0
  102. package/harness/skills/oh-investigate/SKILL.md +13 -66
  103. package/harness/skills/oh-issue/DEEP.md +21 -0
  104. package/harness/skills/oh-issue/SKILL.md +11 -27
  105. package/harness/skills/oh-manifest/DEEP.md +92 -0
  106. package/harness/skills/oh-manifest/SKILL.md +12 -109
  107. package/harness/skills/oh-plan-review/DEEP.md +90 -0
  108. package/harness/skills/oh-plan-review/SKILL.md +13 -115
  109. package/harness/skills/oh-planner/DEEP.md +172 -0
  110. package/harness/skills/oh-planner/SKILL.md +12 -149
  111. package/harness/skills/oh-prd/DEEP.md +45 -0
  112. package/harness/skills/oh-prd/SKILL.md +10 -26
  113. package/harness/skills/oh-refactor/DEEP.md +122 -0
  114. package/harness/skills/oh-refactor/SKILL.md +17 -410
  115. package/harness/skills/oh-retro/DEEP.md +26 -0
  116. package/harness/skills/oh-retro/SKILL.md +12 -24
  117. package/harness/skills/oh-review/DEEP.md +87 -0
  118. package/harness/skills/oh-review/SKILL.md +11 -97
  119. package/harness/skills/oh-security/DEEP.md +83 -0
  120. package/harness/skills/oh-security/SKILL.md +14 -96
  121. package/harness/skills/oh-ship/DEEP.md +141 -0
  122. package/harness/skills/oh-ship/SKILL.md +14 -32
  123. package/harness/skills/oh-skill-craft/DEEP.md +369 -0
  124. package/harness/skills/oh-skill-craft/SKILL.md +13 -177
  125. package/harness/skills/oh-skills-link/DEEP.md +16 -0
  126. package/harness/skills/oh-skills-link/SKILL.md +10 -20
  127. package/harness/skills/oh-skills-list/DEEP.md +20 -0
  128. package/harness/skills/oh-skills-list/SKILL.md +9 -22
  129. package/harness/skills/oh-triage/DEEP.md +23 -0
  130. package/harness/skills/oh-triage/SKILL.md +8 -24
  131. package/harness/skills/oh-worktree/DEEP.md +169 -0
  132. package/harness/skills/oh-worktree/SKILL.md +32 -0
  133. package/lib/harness-resolver.ts +8 -10
  134. package/package.json +7 -5
  135. package/tsconfig.json +1 -1
  136. package/harness/codex/CONSTITUTION.md +0 -73
  137. package/harness/codex/ROUTING.md +0 -92
  138. package/harness/commands/oh-doctor.md +0 -26
  139. package/harness/commands/oh-log.md +0 -18
  140. package/harness/instructions/RUNTIME.md +0 -30
  141. package/harness/skills/oh-caveman/SKILL.md +0 -42
  142. package/harness/skills/oh-learn/SKILL.md +0 -101
  143. package/lib/logger.ts +0 -75
@@ -0,0 +1,292 @@
1
+ # oh-ascii — Deep Reference
2
+
3
+ ## When to Use
4
+
5
+ Creating architecture diagrams, file trees, flowcharts, sequence diagrams, box-drawing layouts, blast radius visualizations, swimlane diagrams, or validating ASCII art alignment in documentation. All output renders in monospace terminals.
6
+
7
+ ## Phases
8
+
9
+ Complete ASCII diagramming — three phases: **Design** (patterns & layout rules), **Generate** (PlantUML workflow), **Validate** (structural alignment checking).
10
+
11
+ ### Phase A: Design Patterns
12
+
13
+ #### Box-Drawing Characters
14
+
15
+ Use ONE set per diagram. Never mix.
16
+
17
+ ```
18
+ default: ┌─┐ │ └─┘ ├─┤ ┬ ┴ ┼
19
+ emphasis: ┏━┓ ┃ ┗━┛ ┣━┫ ┳ ┻ ╋
20
+ title: ╔═╗ ║ ╚═╝ ╠═╣ ╦ ╩ ╬
21
+ soft: ╭─╮ │ ╰─╯
22
+ portable: +-+ | +-+ +-+ + + +
23
+ arrows: → ← ↑ ↓ ─> <─ ──> <──
24
+ blocks: █ ▓ ░ ▏▎▍▌▋▊▉
25
+ status: ● ○ ✓ ✗ ⚠ ◆ ◇ ▶ ▷ ↑↓→ ▓▒░
26
+ ```
27
+
28
+ | Set | Use |
29
+ |-----|-----|
30
+ | `default` ─│ | Most diagrams |
31
+ | `emphasis` ━┃ | Headers, focus elements |
32
+ | `title` ═║ | Section banners only |
33
+ | `soft` ╭╮╰╯ ─│ | Status cards, ambient UI |
34
+ | `portable` +-\| | CI/TTY fallback |
35
+
36
+ Status glyphs (closed set): `● ○ ✓ ✗ ⚠ ◆ ◇ ▶ ▷ ↑ ↓ → ▓ ░ ▒`
37
+
38
+ #### Diagram Patterns
39
+
40
+ ##### Architecture
41
+
42
+ ```
43
+ ┌──────────────┐ ┌──────────────┐
44
+ │ Frontend │─────>│ Backend │
45
+ │ React 19 │ │ FastAPI │
46
+ └──────────────┘ └───────┬──────┘
47
+ v
48
+ ┌──────────────┐
49
+ │ PostgreSQL │
50
+ └──────────────┘
51
+ ```
52
+
53
+ ##### File Trees with Annotations
54
+
55
+ ```
56
+ src/
57
+ ├── api/
58
+ │ ├── routes.py [M] +45 -12 !! high-traffic
59
+ │ └── schemas.py [M] +20 -5
60
+ ├── services/
61
+ │ └── billing.py [A] +180 ** new
62
+ └── tests/
63
+ └── test_billing.py [A] +120 ** new
64
+
65
+ Legend: [A]dd [M]odify [D]elete !! Risk ** New
66
+ ```
67
+
68
+ ##### Progress Bars, Swimlanes, Blast Radius, Comparisons, Reversibility
69
+
70
+ **Progress**
71
+
72
+ ```
73
+ [████████░░] 80% Complete
74
+ + Design (2d) + Backend (5d)
75
+ ~ Frontend (3d) - Testing (pending)
76
+ ```
77
+
78
+ **Swimlane**
79
+
80
+ ```
81
+ Backend ===[Schema]======[API]===========================[Deploy]====>
82
+ | | ^
83
+ | +------blocks------+ |
84
+ Frontend -------[Wait]--------[Components]=======[Integration]=+
85
+
86
+ === active --- blocked/waiting | dependency
87
+ ```
88
+
89
+ **Blast Radius (Concentric Rings)**
90
+
91
+ ```
92
+ Ring 3: Tests (8 files)
93
+ +-----------------------------------+
94
+ | Ring 2: Transitive (5) |
95
+ | +----------------------------+ |
96
+ | | Ring 1: Direct (3) | |
97
+ | | +------------------+ | |
98
+ | | | CHANGED FILE | | |
99
+ | | +------------------+ | |
100
+ | +----------------------------+ |
101
+ +-----------------------------------+
102
+ ```
103
+
104
+ **Comparison (Before/After)**
105
+
106
+ ```
107
+ BEFORE AFTER
108
+ ┌────────────────┐ ┌────────────────┐
109
+ │ Monolith │ │ Service A │──┐
110
+ │ (all-in-1) │ └────────────────┘ │ ┌──────────┐
111
+ └────────────────┘ ┌────────────────┐ ├─>│ Shared │
112
+ │ Service B │──┘ │ Queue │
113
+ └────────────────┘ └──────────┘
114
+ ```
115
+
116
+ **Reversibility Timeline**
117
+
118
+ ```
119
+ Phase 1 [================] FULLY REVERSIBLE (add column)
120
+ Phase 2 [================] FULLY REVERSIBLE (new endpoint)
121
+ Phase 3 [============....] PARTIALLY (backfill)
122
+ --- POINT OF NO RETURN ---
123
+ Phase 4 [........????????] IRREVERSIBLE (drop column)
124
+ ```
125
+
126
+ ##### Key Rules
127
+
128
+ - **Font**: Monospace only — box-drawing requires fixed-width
129
+ - **Arrows**: `->`, `-->`, or `|` with `v`/`^`
130
+ - **Width**: Under 80 cols for terminal compat
131
+ - **Nesting**: Max 3 levels
132
+ - **Labels**: Short — long text breaks alignment
133
+ - **Set consistency**: One set per diagram, never mixed
134
+
135
+ ### Phase B: Generation (PlantUML)
136
+
137
+ Generate ASCII from `.puml` files. Requires PlantUML installed (`brew install plantuml`, `apt install plantuml`, or `java -jar plantuml.jar`).
138
+
139
+ #### Workflow
140
+
141
+ ```
142
+ plantuml -utxt diagram.puml # Unicode (preferred)
143
+ plantuml -txt diagram.puml # Standard ASCII
144
+ # Output: diagram.utxt or diagram.atxt
145
+ ```
146
+
147
+ #### Templates (7 types)
148
+
149
+ | Type | Description |
150
+ |------|------------|
151
+ | **Sequence** | Actor → System → DB interactions |
152
+ | **Class** | Types, fields, methods, relationships |
153
+ | **Activity** | Workflow branches, decision nodes |
154
+ | **State** | State transitions, entry/exit, events |
155
+ | **Component** | Service boundaries, dependencies |
156
+ | **Use Case** | Actors, system boundary, use cases |
157
+ | **Deployment** | Nodes, servers, databases, replicas |
158
+
159
+ **Sequence Example**
160
+
161
+ ```plantuml
162
+ @startuml
163
+ actor User
164
+ participant "Web App" as App
165
+ database "Database" as DB
166
+
167
+ User -> App : Login Request
168
+ App -> DB : Validate Credentials
169
+ DB --> App : User Data
170
+ App --> User : Auth Token
171
+ @enduml
172
+ ```
173
+
174
+ **Component Example**
175
+
176
+ ```plantuml
177
+ @startuml
178
+ [Client] as client
179
+ [API Gateway] as gateway
180
+ [Service A] as svcA
181
+ [Database] as db
182
+
183
+ client --> gateway
184
+ gateway --> svcA
185
+ svcA --> db
186
+ @enduml
187
+ ```
188
+
189
+ **Activity Example (branching workflows)**
190
+
191
+ ```plantuml
192
+ @startuml
193
+ start
194
+ :Initialize;
195
+ if (Is Valid?) then (yes)
196
+ :Process Data;
197
+ :Save Result;
198
+ else (no)
199
+ :Log Error;
200
+ stop
201
+ endif
202
+ :Complete;
203
+ stop
204
+ @enduml
205
+ ```
206
+
207
+ **State Example (state transitions)**
208
+
209
+ ```plantuml
210
+ @startuml
211
+ [*] --> Idle
212
+ Idle --> Processing : start
213
+ Processing --> Success : complete
214
+ Processing --> Error : fail
215
+ Success --> [*]
216
+ Error --> Idle : retry
217
+ @enduml
218
+ ```
219
+
220
+ #### CLI Options
221
+
222
+ ```
223
+ plantuml -utxt -o ./output diagram.puml # output dir
224
+ plantuml -utxt ./diagrams/ # batch dir
225
+ plantuml -utxt -charset UTF-8 diagram.puml # charset
226
+ ```
227
+
228
+ ### Phase C: Validation
229
+
230
+ Validates structural alignment of box-drawing characters in markdown code blocks. Script bundled at `scripts/check_ascii_alignment.py`.
231
+
232
+ #### Usage
233
+
234
+ ```bash
235
+ python3 scripts/check_ascii_alignment.py docs/ARCHITECTURE.md # single file
236
+ python3 scripts/check_ascii_alignment.py docs/ # batch dir
237
+ python3 scripts/check_ascii_alignment.py docs/ --verbose # show skipped blocks
238
+ python3 scripts/check_ascii_alignment.py docs/ --warn-only # warnings exit 0
239
+ ```
240
+
241
+ #### Checks
242
+
243
+ - **Vertical alignment** — connectors must match above/below
244
+ - **Corner connections** — corners connect to adjacent lines
245
+ - **Junction validity** — T-joins/crosses have correct connections
246
+ - **Line continuity** — horizontals terminate at valid endpoints
247
+ - **Box closure** — no dangling edges
248
+
249
+ #### Output
250
+
251
+ Compiler-like format:
252
+
253
+ ```
254
+ file.md:45:12: error: vertical connector '|' at col 12 has no match above
255
+ -> Suggestion: Add '|', '├', '┤', '┬', or '┼' at line 44, col 12
256
+ ```
257
+
258
+ | Level | Exit |
259
+ |-------|------|
260
+ | error | 1 |
261
+ | warning | 2 (or 0 with --warn-only) |
262
+ | info / clean | 0 |
263
+
264
+ Validation scope: enclosed box diagrams in fenced code blocks. Skips file trees (`├──`). Detects all line weights (light, double, heavy, rounded).
265
+
266
+ #### Integration
267
+
268
+ ```bash
269
+ # Create → validate → fix → re-validate until clean
270
+ python3 scripts/check_ascii_alignment.py docs/ARCHITECTURE.md
271
+ ```
272
+
273
+ ## Anti-patterns
274
+
275
+ - Mixing character sets in one diagram
276
+ - Tabs in diagrams — use spaces; tabs cause false positives
277
+ - Deep nesting (4+ levels) — readability degrades past 3
278
+ - Over-80-col diagrams — break into sections
279
+ - Inline ASCII outside code blocks — always fence
280
+ - PlantUML for one-off simple diagrams — manual ASCII is faster for <5 boxes
281
+
282
+ ## Troubleshooting
283
+
284
+ | Issue | Cause | Fix |
285
+ |-------|-------|-----|
286
+ | Garbled Unicode | Terminal lacks UTF-8 support | Ensure UTF-8 locale and monospace font |
287
+ | Misaligned diagram | Wrong font or tab characters | Fixed-width font (Consolas, Courier, Monaco); convert tabs to spaces |
288
+ | PlantUML command not found | Not installed | `java -jar plantuml.jar -txt` as fallback |
289
+ | False positives from tabs | Tab characters misalign columns | Convert tabs to spaces before validation |
290
+ | Diagram wrong but validator passes | Aesthetic spacing not structural | Validator checks structure, not visual alignment — review manually |
291
+ | Validator skipping diagram | Not an enclosed box diagram | Ensure all 4 corners present (`┌┐└┘` or equivalent) |
292
+ | Unicode chars not rendering | Terminal font missing glyphs | Use font with full box-drawing support (Cascadia Code, JetBrains Mono) |
@@ -0,0 +1,31 @@
1
+ ---
2
+ name: oh-ascii
3
+ description: "Complete ASCII diagramming toolkit: design patterns, PlantUML generation, and structural validation. Use when creating architecture diagrams, file trees, flowcharts, sequence diagrams, box-drawing layouts, or validating ASCII art alignment in documentation."
4
+ route:
5
+ pass: surface
6
+ fail: surface
7
+ blocker: surface
8
+ tier: 2
9
+ ---
10
+
11
+ # oh-ascii
12
+
13
+ Create and validate ASCII diagrams in three phases: design, generate, validate.
14
+
15
+ ## Steps
16
+
17
+ 1. Determine diagram type and select matching design pattern
18
+ 2. Draw using box-drawing characters from a single consistent set
19
+ 3. Fence all diagrams in markdown code blocks
20
+ 4. Keep diagrams under 80 columns with max 3 nesting levels
21
+ 5. For complex diagrams, author PlantUML and render with `-utxt`
22
+ 6. Validate structural alignment with `scripts/check_ascii_alignment.py`
23
+ 7. Fix reported issues and re-validate until clean
24
+
25
+ ## Routing
26
+
27
+ | Outcome | Route |
28
+ |---------|-------|
29
+ | pass | → surface |
30
+ | fail | → surface |
31
+ | blocker | → surface |