supernaturalist 0.1.0

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 (44) hide show
  1. package/README.md +85 -0
  2. package/dist/cli.js +1097 -0
  3. package/dist/cli.js.map +7 -0
  4. package/dist/lib/adapters/amp.d.ts +3 -0
  5. package/dist/lib/adapters/amp.d.ts.map +1 -0
  6. package/dist/lib/adapters/amp.js +79 -0
  7. package/dist/lib/adapters/amp.js.map +1 -0
  8. package/dist/lib/adapters/claude.d.ts +3 -0
  9. package/dist/lib/adapters/claude.d.ts.map +1 -0
  10. package/dist/lib/adapters/claude.js +147 -0
  11. package/dist/lib/adapters/claude.js.map +1 -0
  12. package/dist/lib/adapters/cline.d.ts +3 -0
  13. package/dist/lib/adapters/cline.d.ts.map +1 -0
  14. package/dist/lib/adapters/cline.js +125 -0
  15. package/dist/lib/adapters/cline.js.map +1 -0
  16. package/dist/lib/adapters/codex.d.ts +3 -0
  17. package/dist/lib/adapters/codex.d.ts.map +1 -0
  18. package/dist/lib/adapters/codex.js +96 -0
  19. package/dist/lib/adapters/codex.js.map +1 -0
  20. package/dist/lib/adapters/index.d.ts +17 -0
  21. package/dist/lib/adapters/index.d.ts.map +1 -0
  22. package/dist/lib/adapters/index.js +27 -0
  23. package/dist/lib/adapters/index.js.map +1 -0
  24. package/dist/lib/adapters/opencode.d.ts +3 -0
  25. package/dist/lib/adapters/opencode.d.ts.map +1 -0
  26. package/dist/lib/adapters/opencode.js +86 -0
  27. package/dist/lib/adapters/opencode.js.map +1 -0
  28. package/dist/lib/adapters/pi.d.ts +3 -0
  29. package/dist/lib/adapters/pi.d.ts.map +1 -0
  30. package/dist/lib/adapters/pi.js +118 -0
  31. package/dist/lib/adapters/pi.js.map +1 -0
  32. package/dist/lib/adapters/zed.d.ts +3 -0
  33. package/dist/lib/adapters/zed.d.ts.map +1 -0
  34. package/dist/lib/adapters/zed.js +156 -0
  35. package/dist/lib/adapters/zed.js.map +1 -0
  36. package/dist/lib/detector/index.d.ts +32 -0
  37. package/dist/lib/detector/index.d.ts.map +1 -0
  38. package/dist/lib/detector/index.js +234 -0
  39. package/dist/lib/detector/index.js.map +1 -0
  40. package/dist/lib/index.d.ts +3 -0
  41. package/dist/lib/index.d.ts.map +1 -0
  42. package/dist/lib/index.js +3 -0
  43. package/dist/lib/index.js.map +1 -0
  44. package/package.json +39 -0
@@ -0,0 +1,234 @@
1
+ /**
2
+ * Core wordlist: canonical forms, conjugations, compound words, and common typos.
3
+ * Grouped by root word for reporting rollup.
4
+ */
5
+ const WORDLIST = [
6
+ // === GHOST family (vivid) ===
7
+ { word: "ghost", intensity: "vivid", group: "ghost" },
8
+ { word: "ghosts", intensity: "vivid", group: "ghost" },
9
+ { word: "ghostly", intensity: "vivid", group: "ghost" },
10
+ { word: "ghosted", intensity: "vivid", group: "ghost" },
11
+ { word: "ghosting", intensity: "vivid", group: "ghost" },
12
+ { word: "ghostwriter", intensity: "subtle", group: "ghost" },
13
+ // === HAUNT family (ominous) ===
14
+ { word: "haunt", intensity: "ominous", group: "haunt" },
15
+ { word: "haunted", intensity: "ominous", group: "haunt" },
16
+ { word: "haunting", intensity: "ominous", group: "haunt" },
17
+ { word: "haunts", intensity: "ominous", group: "haunt" },
18
+ { word: "hauntings", intensity: "ominous", group: "haunt" },
19
+ // === CURSE family (ominous) ===
20
+ { word: "curse", intensity: "ominous", group: "curse" },
21
+ { word: "cursed", intensity: "ominous", group: "curse" },
22
+ { word: "curses", intensity: "ominous", group: "curse" },
23
+ { word: "cursing", intensity: "ominous", group: "curse" },
24
+ { word: "cursedness", intensity: "ominous", group: "curse" },
25
+ // === GHOUL family (vivid) ===
26
+ { word: "ghoul", intensity: "vivid", group: "ghoul" },
27
+ { word: "ghouls", intensity: "vivid", group: "ghoul" },
28
+ { word: "ghoulish", intensity: "vivid", group: "ghoul" },
29
+ // === GOBLIN family (vivid) ===
30
+ { word: "goblin", intensity: "vivid", group: "goblin" },
31
+ { word: "goblins", intensity: "vivid", group: "goblin" },
32
+ { word: "gobliny", intensity: "subtle", group: "goblin" },
33
+ // === SPECTER family (vivid) ===
34
+ { word: "specter", intensity: "vivid", group: "specter" },
35
+ { word: "specters", intensity: "vivid", group: "specter" },
36
+ { word: "spectral", intensity: "vivid", group: "specter" },
37
+ // === PHANTOM family (vivid) ===
38
+ { word: "phantom", intensity: "vivid", group: "phantom" },
39
+ { word: "phantoms", intensity: "vivid", group: "phantom" },
40
+ // === WRAITH family (ominous) ===
41
+ { word: "wraith", intensity: "ominous", group: "wraith" },
42
+ { word: "wraiths", intensity: "ominous", group: "wraith" },
43
+ { word: "wraithlike", intensity: "ominous", group: "wraith" },
44
+ // === APPARITION family (vivid) ===
45
+ { word: "apparition", intensity: "vivid", group: "apparition" },
46
+ { word: "apparitions", intensity: "vivid", group: "apparition" },
47
+ { word: "apparitional", intensity: "vivid", group: "apparition" },
48
+ // === POLTERGEIST family (ominous) ===
49
+ { word: "poltergeist", intensity: "ominous", group: "poltergeist" },
50
+ { word: "poltergeists", intensity: "ominous", group: "poltergeist" },
51
+ // === DEMON family (ominous) ===
52
+ { word: "demon", intensity: "ominous", group: "demon" },
53
+ { word: "demons", intensity: "ominous", group: "demon" },
54
+ { word: "demonic", intensity: "ominous", group: "demon" },
55
+ // === UNDEAD family (vivid) ===
56
+ { word: "undead", intensity: "vivid", group: "undead" },
57
+ { word: "lich", intensity: "ominous", group: "undead" },
58
+ { word: "liches", intensity: "ominous", group: "undead" },
59
+ { word: "revenant", intensity: "ominous", group: "undead" },
60
+ { word: "revenants", intensity: "ominous", group: "undead" },
61
+ // === ZOMBIE family (vivid) ===
62
+ { word: "zombie", intensity: "vivid", group: "zombie" },
63
+ { word: "zombies", intensity: "vivid", group: "zombie" },
64
+ { word: "zombified", intensity: "vivid", group: "zombie" },
65
+ { word: "zombifying", intensity: "vivid", group: "zombie" },
66
+ // === VAMPIRE family (ominous) ===
67
+ { word: "vampire", intensity: "ominous", group: "vampire" },
68
+ { word: "vampires", intensity: "ominous", group: "vampire" },
69
+ { word: "vampiric", intensity: "ominous", group: "vampire" },
70
+ { word: "vampirism", intensity: "ominous", group: "vampire" },
71
+ // === WEREWOLF family (ominous) ===
72
+ { word: "werewolf", intensity: "ominous", group: "werewolf" },
73
+ { word: "werewolves", intensity: "ominous", group: "werewolf" },
74
+ { word: "lycan", intensity: "ominous", group: "werewolf" },
75
+ { word: "lycans", intensity: "ominous", group: "werewolf" },
76
+ { word: "lycanthrope", intensity: "ominous", group: "werewolf" },
77
+ { word: "lycanthropy", intensity: "ominous", group: "werewolf" },
78
+ // === WITCH family (vivid) ===
79
+ { word: "witch", intensity: "vivid", group: "witch" },
80
+ { word: "witches", intensity: "vivid", group: "witch" },
81
+ { word: "witchcraft", intensity: "vivid", group: "witch" },
82
+ { word: "witchy", intensity: "subtle", group: "witch" },
83
+ // === WARLOCK family (vivid) ===
84
+ { word: "warlock", intensity: "vivid", group: "warlock" },
85
+ { word: "warlocks", intensity: "vivid", group: "warlock" },
86
+ // === SORCERY family (vivid) ===
87
+ { word: "sorcery", intensity: "vivid", group: "sorcery" },
88
+ { word: "sorcerer", intensity: "vivid", group: "sorcery" },
89
+ { word: "sorcerers", intensity: "vivid", group: "sorcery" },
90
+ { word: "sorcerous", intensity: "vivid", group: "sorcery" },
91
+ // === SPELL family (subtle) ===
92
+ { word: "spell", intensity: "subtle", group: "spell" },
93
+ { word: "spells", intensity: "subtle", group: "spell" },
94
+ { word: "spellbound", intensity: "vivid", group: "spell" },
95
+ { word: "spellbinding", intensity: "vivid", group: "spell" },
96
+ { word: "spellbook", intensity: "vivid", group: "spell" },
97
+ { word: "spellcasting", intensity: "vivid", group: "spell" },
98
+ // === HEX family (ominous) ===
99
+ { word: "hex", intensity: "ominous", group: "hex" },
100
+ { word: "hexed", intensity: "ominous", group: "hex" },
101
+ { word: "hexes", intensity: "ominous", group: "hex" },
102
+ { word: "hexing", intensity: "ominous", group: "hex" },
103
+ // === GRIMOIRE family (vivid) ===
104
+ { word: "grimoire", intensity: "vivid", group: "grimoire" },
105
+ { word: "grimoires", intensity: "vivid", group: "grimoire" },
106
+ // === ELDRITCH family (ominous) ===
107
+ { word: "eldritch", intensity: "ominous", group: "eldritch" },
108
+ { word: "eldritchy", intensity: "ominous", group: "eldritch" },
109
+ // === CURSED OBJECTS ===
110
+ { word: "hauntedhouse", intensity: "ominous", group: "haunt" },
111
+ { word: "hauntingly", intensity: "ominous", group: "haunt" },
112
+ { word: "cursedobject", intensity: "ominous", group: "curse" },
113
+ // === OTHER SUPERNATURAL ===
114
+ { word: "possessed", intensity: "ominous", group: "possession" },
115
+ { word: "possession", intensity: "ominous", group: "possession" },
116
+ { word: "possess", intensity: "ominous", group: "possession" },
117
+ { word: "exorcism", intensity: "ominous", group: "exorcism" },
118
+ { word: "exorcist", intensity: "ominous", group: "exorcism" },
119
+ { word: "seance", intensity: "vivid", group: "seance" },
120
+ { word: "séance", intensity: "vivid", group: "seance" },
121
+ { word: "medium", intensity: "subtle", group: "medium" },
122
+ { word: "mediums", intensity: "subtle", group: "medium" },
123
+ { word: "ouija", intensity: "vivid", group: "ouija" },
124
+ { word: "hauntology", intensity: "subtle", group: "haunt" },
125
+ { word: "banshee", intensity: "vivid", group: "banshee" },
126
+ { word: "banshees", intensity: "vivid", group: "banshee" },
127
+ { word: "wight", intensity: "ominous", group: "undead" },
128
+ { word: "wights", intensity: "ominous", group: "undead" },
129
+ { word: "ghast", intensity: "ominous", group: "ghoul" },
130
+ { word: "ghasts", intensity: "ominous", group: "ghoul" },
131
+ { word: "hauntedness", intensity: "ominous", group: "haunt" },
132
+ { word: "spectrality", intensity: "vivid", group: "specter" },
133
+ { word: "spirit", intensity: "subtle", group: "spirit" },
134
+ { word: "spirits", intensity: "subtle", group: "spirit" },
135
+ { word: "spiritual", intensity: "subtle", group: "spirit" },
136
+ { word: "phantasm", intensity: "vivid", group: "phantom" },
137
+ { word: "phantasms", intensity: "vivid", group: "phantom" },
138
+ ];
139
+ function collapseRepeats(text) {
140
+ return text.replace(/(.)\1+/g, "$1");
141
+ }
142
+ function buildPattern(words) {
143
+ const sorted = [...words].sort((a, b) => b.word.length - a.word.length);
144
+ const pattern = sorted.map((w) => escapeRegExp(w.word)).join("|");
145
+ return new RegExp(`\\b(${pattern})\\b`, "gi");
146
+ }
147
+ function escapeRegExp(word) {
148
+ return word.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
149
+ }
150
+ const DEFAULT_PATTERN = buildPattern(WORDLIST);
151
+ const WORD_MAP = new Map(WORDLIST.map((w) => [w.word.toLowerCase(), w]));
152
+ /**
153
+ * Detect supernatural terms in a string.
154
+ *
155
+ * Runs detection in two passes:
156
+ * 1. Direct match on original text (preserves positions)
157
+ * 2. Match on repeat-collapsed text (catches ghooost, haauunted, etc.)
158
+ */
159
+ export function detect(text) {
160
+ const matches = [];
161
+ const seen = new Set();
162
+ runPattern(text, text.toLowerCase(), matches, seen);
163
+ const collapsed = collapseRepeats(text.toLowerCase());
164
+ if (collapsed !== text.toLowerCase()) {
165
+ runPattern(text, collapsed, matches, seen);
166
+ }
167
+ return { count: matches.length, matches };
168
+ }
169
+ function runPattern(_originalText, searchText, matches, seen) {
170
+ DEFAULT_PATTERN.lastIndex = 0;
171
+ let match;
172
+ while ((match = DEFAULT_PATTERN.exec(searchText)) !== null) {
173
+ if (seen.has(match.index)) {
174
+ continue;
175
+ }
176
+ const word = match[0].toLowerCase();
177
+ const entry = WORD_MAP.get(word);
178
+ if (!entry) {
179
+ continue;
180
+ }
181
+ seen.add(match.index);
182
+ matches.push({
183
+ word,
184
+ index: match.index,
185
+ intensity: entry.intensity,
186
+ group: entry.group,
187
+ });
188
+ }
189
+ }
190
+ /**
191
+ * Create a custom detector with additional words.
192
+ */
193
+ export function createDetector(extraWords) {
194
+ const allWords = extraWords ? [...WORDLIST, ...extraWords] : WORDLIST;
195
+ const pattern = buildPattern(allWords);
196
+ const wordMap = new Map(allWords.map((w) => [w.word.toLowerCase(), w]));
197
+ return (text) => {
198
+ const matches = [];
199
+ const seen = new Set();
200
+ const lower = text.toLowerCase();
201
+ pattern.lastIndex = 0;
202
+ let match;
203
+ while ((match = pattern.exec(lower)) !== null) {
204
+ if (seen.has(match.index)) {
205
+ continue;
206
+ }
207
+ const word = match[0].toLowerCase();
208
+ const entry = wordMap.get(word);
209
+ if (!entry) {
210
+ continue;
211
+ }
212
+ seen.add(match.index);
213
+ matches.push({ word, index: match.index, intensity: entry.intensity, group: entry.group });
214
+ }
215
+ const collapsed = collapseRepeats(lower);
216
+ if (collapsed !== lower) {
217
+ pattern.lastIndex = 0;
218
+ while ((match = pattern.exec(collapsed)) !== null) {
219
+ if (seen.has(match.index)) {
220
+ continue;
221
+ }
222
+ const word = match[0].toLowerCase();
223
+ const entry = wordMap.get(word);
224
+ if (!entry) {
225
+ continue;
226
+ }
227
+ seen.add(match.index);
228
+ matches.push({ word, index: match.index, intensity: entry.intensity, group: entry.group });
229
+ }
230
+ }
231
+ return { count: matches.length, matches };
232
+ };
233
+ }
234
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/detector/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export { detect, createDetector, type DetectionResult, type Match, type Intensity, type WordEntry, } from "./detector/index";
2
+ export { createAdapter, allAdapters, type Adapter, type Message } from "./adapters/index";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,MAAM,EACN,cAAc,EACd,KAAK,eAAe,EACpB,KAAK,KAAK,EACV,KAAK,SAAS,EACd,KAAK,SAAS,GACf,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,KAAK,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,kBAAkB,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { detect, createDetector, } from "./detector/index";
2
+ export { createAdapter, allAdapters } from "./adapters/index";
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,MAAM,EACN,cAAc,GAKf,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,aAAa,EAAE,WAAW,EAA8B,MAAM,kBAAkB,CAAC"}
package/package.json ADDED
@@ -0,0 +1,39 @@
1
+ {
2
+ "name": "supernaturalist",
3
+ "version": "0.1.0",
4
+ "description": "Analyze supernatural language in your coding agent responses",
5
+ "type": "module",
6
+ "bin": "./dist/cli.js",
7
+ "exports": {
8
+ ".": {
9
+ "types": "./dist/lib/index.d.ts",
10
+ "import": "./dist/lib/index.js"
11
+ }
12
+ },
13
+ "files": [
14
+ "dist"
15
+ ],
16
+ "scripts": {
17
+ "start": "node dist/cli.js",
18
+ "build": "node build.js",
19
+ "dev": "node build.js --watch",
20
+ "typecheck": "tsc --noEmit",
21
+ "lint": "oxlint src/",
22
+ "format": "oxfmt --check src/",
23
+ "test": "node tests/detector.test.mjs"
24
+ },
25
+ "engines": {
26
+ "node": ">=20"
27
+ },
28
+ "license": "MIT",
29
+ "devDependencies": {
30
+ "@types/better-sqlite3": "^7.6.13",
31
+ "@types/node": "^25.6.1",
32
+ "esbuild": "^0.25.0",
33
+ "oxlint": "^0.16.0",
34
+ "typescript": "^5.8.0"
35
+ },
36
+ "dependencies": {
37
+ "better-sqlite3": "^11.0.0"
38
+ }
39
+ }