@oh-my-pi/pi-coding-agent 3.25.0 → 3.31.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.
- package/CHANGELOG.md +90 -0
- package/package.json +5 -5
- package/src/cli/args.ts +4 -0
- package/src/core/agent-session.ts +29 -2
- package/src/core/bash-executor.ts +2 -1
- package/src/core/custom-commands/bundled/review/index.ts +369 -14
- package/src/core/custom-commands/bundled/wt/index.ts +1 -1
- package/src/core/session-manager.ts +158 -246
- package/src/core/session-storage.ts +379 -0
- package/src/core/settings-manager.ts +155 -4
- package/src/core/system-prompt.ts +62 -64
- package/src/core/tools/ask.ts +5 -4
- package/src/core/tools/bash-interceptor.ts +26 -61
- package/src/core/tools/bash.ts +13 -8
- package/src/core/tools/complete.ts +2 -4
- package/src/core/tools/edit-diff.ts +11 -4
- package/src/core/tools/edit.ts +7 -13
- package/src/core/tools/find.ts +111 -50
- package/src/core/tools/gemini-image.ts +128 -147
- package/src/core/tools/grep.ts +397 -415
- package/src/core/tools/index.test.ts +5 -1
- package/src/core/tools/index.ts +6 -8
- package/src/core/tools/jtd-to-json-schema.ts +174 -196
- package/src/core/tools/ls.ts +12 -10
- package/src/core/tools/lsp/client.ts +58 -9
- package/src/core/tools/lsp/config.ts +205 -656
- package/src/core/tools/lsp/defaults.json +465 -0
- package/src/core/tools/lsp/index.ts +55 -32
- package/src/core/tools/lsp/rust-analyzer.ts +49 -10
- package/src/core/tools/lsp/types.ts +1 -0
- package/src/core/tools/lsp/utils.ts +1 -1
- package/src/core/tools/read.ts +152 -76
- package/src/core/tools/render-utils.ts +70 -10
- package/src/core/tools/review.ts +38 -126
- package/src/core/tools/task/artifacts.ts +5 -4
- package/src/core/tools/task/executor.ts +204 -67
- package/src/core/tools/task/index.ts +129 -92
- package/src/core/tools/task/name-generator.ts +1544 -214
- package/src/core/tools/task/parallel.ts +30 -3
- package/src/core/tools/task/render.ts +85 -39
- package/src/core/tools/task/types.ts +34 -11
- package/src/core/tools/task/worker.ts +152 -27
- package/src/core/tools/web-fetch.ts +220 -1657
- package/src/core/tools/web-scrapers/academic.test.ts +239 -0
- package/src/core/tools/web-scrapers/artifacthub.ts +215 -0
- package/src/core/tools/web-scrapers/arxiv.ts +88 -0
- package/src/core/tools/web-scrapers/aur.ts +175 -0
- package/src/core/tools/web-scrapers/biorxiv.ts +141 -0
- package/src/core/tools/web-scrapers/bluesky.ts +284 -0
- package/src/core/tools/web-scrapers/brew.ts +177 -0
- package/src/core/tools/web-scrapers/business.test.ts +82 -0
- package/src/core/tools/web-scrapers/cheatsh.ts +78 -0
- package/src/core/tools/web-scrapers/chocolatey.ts +158 -0
- package/src/core/tools/web-scrapers/choosealicense.ts +110 -0
- package/src/core/tools/web-scrapers/cisa-kev.ts +100 -0
- package/src/core/tools/web-scrapers/clojars.ts +180 -0
- package/src/core/tools/web-scrapers/coingecko.ts +184 -0
- package/src/core/tools/web-scrapers/crates-io.ts +128 -0
- package/src/core/tools/web-scrapers/crossref.ts +149 -0
- package/src/core/tools/web-scrapers/dev-platforms.test.ts +254 -0
- package/src/core/tools/web-scrapers/devto.ts +177 -0
- package/src/core/tools/web-scrapers/discogs.ts +308 -0
- package/src/core/tools/web-scrapers/discourse.ts +221 -0
- package/src/core/tools/web-scrapers/dockerhub.ts +160 -0
- package/src/core/tools/web-scrapers/documentation.test.ts +85 -0
- package/src/core/tools/web-scrapers/fdroid.ts +158 -0
- package/src/core/tools/web-scrapers/finance-media.test.ts +144 -0
- package/src/core/tools/web-scrapers/firefox-addons.ts +214 -0
- package/src/core/tools/web-scrapers/flathub.ts +239 -0
- package/src/core/tools/web-scrapers/git-hosting.test.ts +272 -0
- package/src/core/tools/web-scrapers/github-gist.ts +68 -0
- package/src/core/tools/web-scrapers/github.ts +455 -0
- package/src/core/tools/web-scrapers/gitlab.ts +456 -0
- package/src/core/tools/web-scrapers/go-pkg.ts +275 -0
- package/src/core/tools/web-scrapers/hackage.ts +94 -0
- package/src/core/tools/web-scrapers/hackernews.ts +208 -0
- package/src/core/tools/web-scrapers/hex.ts +121 -0
- package/src/core/tools/web-scrapers/huggingface.ts +385 -0
- package/src/core/tools/web-scrapers/iacr.ts +86 -0
- package/src/core/tools/web-scrapers/index.ts +250 -0
- package/src/core/tools/web-scrapers/jetbrains-marketplace.ts +169 -0
- package/src/core/tools/web-scrapers/lemmy.ts +220 -0
- package/src/core/tools/web-scrapers/lobsters.ts +186 -0
- package/src/core/tools/web-scrapers/mastodon.ts +310 -0
- package/src/core/tools/web-scrapers/maven.ts +152 -0
- package/src/core/tools/web-scrapers/mdn.ts +174 -0
- package/src/core/tools/web-scrapers/media.test.ts +138 -0
- package/src/core/tools/web-scrapers/metacpan.ts +253 -0
- package/src/core/tools/web-scrapers/musicbrainz.ts +273 -0
- package/src/core/tools/web-scrapers/npm.ts +114 -0
- package/src/core/tools/web-scrapers/nuget.ts +205 -0
- package/src/core/tools/web-scrapers/nvd.ts +243 -0
- package/src/core/tools/web-scrapers/ollama.ts +267 -0
- package/src/core/tools/web-scrapers/open-vsx.ts +119 -0
- package/src/core/tools/web-scrapers/opencorporates.ts +275 -0
- package/src/core/tools/web-scrapers/openlibrary.ts +319 -0
- package/src/core/tools/web-scrapers/orcid.ts +299 -0
- package/src/core/tools/web-scrapers/osv.ts +189 -0
- package/src/core/tools/web-scrapers/package-managers-2.test.ts +199 -0
- package/src/core/tools/web-scrapers/package-managers.test.ts +171 -0
- package/src/core/tools/web-scrapers/package-registries.test.ts +259 -0
- package/src/core/tools/web-scrapers/packagist.ts +174 -0
- package/src/core/tools/web-scrapers/pub-dev.ts +185 -0
- package/src/core/tools/web-scrapers/pubmed.ts +178 -0
- package/src/core/tools/web-scrapers/pypi.ts +129 -0
- package/src/core/tools/web-scrapers/rawg.ts +124 -0
- package/src/core/tools/web-scrapers/readthedocs.ts +126 -0
- package/src/core/tools/web-scrapers/reddit.ts +104 -0
- package/src/core/tools/web-scrapers/repology.ts +262 -0
- package/src/core/tools/web-scrapers/research.test.ts +107 -0
- package/src/core/tools/web-scrapers/rfc.ts +209 -0
- package/src/core/tools/web-scrapers/rubygems.ts +117 -0
- package/src/core/tools/web-scrapers/searchcode.ts +217 -0
- package/src/core/tools/web-scrapers/sec-edgar.ts +274 -0
- package/src/core/tools/web-scrapers/security.test.ts +103 -0
- package/src/core/tools/web-scrapers/semantic-scholar.ts +190 -0
- package/src/core/tools/web-scrapers/snapcraft.ts +200 -0
- package/src/core/tools/web-scrapers/social-extended.test.ts +192 -0
- package/src/core/tools/web-scrapers/social.test.ts +259 -0
- package/src/core/tools/web-scrapers/sourcegraph.ts +373 -0
- package/src/core/tools/web-scrapers/spdx.ts +121 -0
- package/src/core/tools/web-scrapers/spotify.ts +218 -0
- package/src/core/tools/web-scrapers/stackexchange.test.ts +120 -0
- package/src/core/tools/web-scrapers/stackoverflow.ts +124 -0
- package/src/core/tools/web-scrapers/standards.test.ts +122 -0
- package/src/core/tools/web-scrapers/terraform.ts +304 -0
- package/src/core/tools/web-scrapers/tldr.ts +51 -0
- package/src/core/tools/web-scrapers/twitter.ts +96 -0
- package/src/core/tools/web-scrapers/types.ts +234 -0
- package/src/core/tools/web-scrapers/utils.ts +162 -0
- package/src/core/tools/web-scrapers/vimeo.ts +152 -0
- package/src/core/tools/web-scrapers/vscode-marketplace.ts +195 -0
- package/src/core/tools/web-scrapers/w3c.ts +163 -0
- package/src/core/tools/web-scrapers/wikidata.ts +357 -0
- package/src/core/tools/web-scrapers/wikipedia.test.ts +73 -0
- package/src/core/tools/web-scrapers/wikipedia.ts +95 -0
- package/src/core/tools/web-scrapers/youtube.test.ts +198 -0
- package/src/core/tools/web-scrapers/youtube.ts +371 -0
- package/src/core/tools/write.ts +21 -18
- package/src/core/voice.ts +3 -2
- package/src/lib/worktree/collapse.ts +2 -1
- package/src/lib/worktree/git.ts +2 -18
- package/src/main.ts +59 -3
- package/src/modes/interactive/components/extensions/extension-dashboard.ts +33 -19
- package/src/modes/interactive/components/extensions/extension-list.ts +15 -8
- package/src/modes/interactive/components/hook-editor.ts +2 -1
- package/src/modes/interactive/components/model-selector.ts +19 -4
- package/src/modes/interactive/interactive-mode.ts +41 -38
- package/src/modes/interactive/theme/theme.ts +58 -58
- package/src/modes/rpc/rpc-mode.ts +10 -9
- package/src/prompts/review-request.md +27 -0
- package/src/prompts/reviewer.md +64 -68
- package/src/prompts/tools/output.md +22 -3
- package/src/prompts/tools/task.md +32 -33
- package/src/utils/clipboard.ts +2 -1
- package/src/utils/tools-manager.ts +110 -8
- package/examples/extensions/subagent/agents/reviewer.md +0 -35
|
@@ -7,195 +7,1525 @@
|
|
|
7
7
|
*/
|
|
8
8
|
|
|
9
9
|
const ADJECTIVES = [
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
10
|
+
"able",
|
|
11
|
+
"above",
|
|
12
|
+
"absent",
|
|
13
|
+
"absolute",
|
|
14
|
+
"abstract",
|
|
15
|
+
"abundant",
|
|
16
|
+
"academic",
|
|
17
|
+
"acceptable",
|
|
18
|
+
"accepted",
|
|
19
|
+
"accessible",
|
|
20
|
+
"accurate",
|
|
21
|
+
"accused",
|
|
22
|
+
"active",
|
|
23
|
+
"actual",
|
|
24
|
+
"acute",
|
|
25
|
+
"added",
|
|
26
|
+
"additional",
|
|
27
|
+
"adequate",
|
|
28
|
+
"adjacent",
|
|
29
|
+
"administrative",
|
|
30
|
+
"adorable",
|
|
31
|
+
"advanced",
|
|
32
|
+
"adverse",
|
|
33
|
+
"advisory",
|
|
34
|
+
"aesthetic",
|
|
35
|
+
"afraid",
|
|
36
|
+
"aggregate",
|
|
37
|
+
"aggressive",
|
|
38
|
+
"agreeable",
|
|
39
|
+
"agreed",
|
|
40
|
+
"agricultural",
|
|
41
|
+
"alert",
|
|
42
|
+
"alive",
|
|
43
|
+
"alleged",
|
|
44
|
+
"allied",
|
|
45
|
+
"alone",
|
|
46
|
+
"alright",
|
|
47
|
+
"alternative",
|
|
48
|
+
"amateur",
|
|
49
|
+
"amazing",
|
|
50
|
+
"ambitious",
|
|
51
|
+
"amused",
|
|
52
|
+
"ancient",
|
|
53
|
+
"angry",
|
|
54
|
+
"annoyed",
|
|
55
|
+
"annual",
|
|
56
|
+
"anonymous",
|
|
57
|
+
"anxious",
|
|
58
|
+
"appalling",
|
|
59
|
+
"apparent",
|
|
60
|
+
"applicable",
|
|
61
|
+
"appropriate",
|
|
62
|
+
"arbitrary",
|
|
63
|
+
"architectural",
|
|
64
|
+
"armed",
|
|
65
|
+
"arrogant",
|
|
66
|
+
"artificial",
|
|
67
|
+
"artistic",
|
|
68
|
+
"ashamed",
|
|
69
|
+
"asleep",
|
|
70
|
+
"assistant",
|
|
71
|
+
"associated",
|
|
72
|
+
"atomic",
|
|
73
|
+
"attractive",
|
|
74
|
+
"automatic",
|
|
75
|
+
"autonomous",
|
|
76
|
+
"available",
|
|
77
|
+
"average",
|
|
78
|
+
"awake",
|
|
79
|
+
"aware",
|
|
80
|
+
"awful",
|
|
81
|
+
"awkward",
|
|
82
|
+
"back",
|
|
83
|
+
"bad",
|
|
84
|
+
"balanced",
|
|
85
|
+
"bare",
|
|
86
|
+
"basic",
|
|
87
|
+
"beautiful",
|
|
88
|
+
"beneficial",
|
|
89
|
+
"better",
|
|
90
|
+
"bewildered",
|
|
91
|
+
"big",
|
|
92
|
+
"binding",
|
|
93
|
+
"biological",
|
|
94
|
+
"bitter",
|
|
95
|
+
"bizarre",
|
|
96
|
+
"blank",
|
|
97
|
+
"blind",
|
|
98
|
+
"blonde",
|
|
99
|
+
"bloody",
|
|
100
|
+
"blushing",
|
|
101
|
+
"boiling",
|
|
102
|
+
"bold",
|
|
103
|
+
"bored",
|
|
104
|
+
"boring",
|
|
105
|
+
"bottom",
|
|
106
|
+
"brainy",
|
|
107
|
+
"brave",
|
|
108
|
+
"breakable",
|
|
109
|
+
"breezy",
|
|
110
|
+
"brief",
|
|
111
|
+
"bright",
|
|
112
|
+
"brilliant",
|
|
113
|
+
"broad",
|
|
114
|
+
"broken",
|
|
115
|
+
"bumpy",
|
|
116
|
+
"burning",
|
|
117
|
+
"busy",
|
|
118
|
+
"calm",
|
|
119
|
+
"capable",
|
|
120
|
+
"capitalist",
|
|
121
|
+
"careful",
|
|
122
|
+
"casual",
|
|
123
|
+
"causal",
|
|
124
|
+
"cautious",
|
|
125
|
+
"central",
|
|
126
|
+
"certain",
|
|
127
|
+
"changing",
|
|
128
|
+
"characteristic",
|
|
129
|
+
"charming",
|
|
130
|
+
"cheap",
|
|
131
|
+
"cheerful",
|
|
132
|
+
"chemical",
|
|
133
|
+
"chief",
|
|
134
|
+
"chilly",
|
|
135
|
+
"chosen",
|
|
136
|
+
"chronic",
|
|
137
|
+
"chubby",
|
|
138
|
+
"circular",
|
|
139
|
+
"civic",
|
|
140
|
+
"civil",
|
|
141
|
+
"civilian",
|
|
142
|
+
"classic",
|
|
143
|
+
"classical",
|
|
144
|
+
"clean",
|
|
145
|
+
"clear",
|
|
146
|
+
"clever",
|
|
147
|
+
"clinical",
|
|
148
|
+
"close",
|
|
149
|
+
"closed",
|
|
150
|
+
"cloudy",
|
|
151
|
+
"clumsy",
|
|
152
|
+
"coastal",
|
|
153
|
+
"cognitive",
|
|
154
|
+
"coherent",
|
|
155
|
+
"cold",
|
|
156
|
+
"collective",
|
|
157
|
+
"colonial",
|
|
158
|
+
"colorful",
|
|
159
|
+
"colossal",
|
|
160
|
+
"coloured",
|
|
161
|
+
"colourful",
|
|
162
|
+
"combative",
|
|
163
|
+
"combined",
|
|
164
|
+
"comfortable",
|
|
165
|
+
"coming",
|
|
166
|
+
"commercial",
|
|
167
|
+
"common",
|
|
168
|
+
"communist",
|
|
169
|
+
"compact",
|
|
170
|
+
"comparable",
|
|
171
|
+
"comparative",
|
|
172
|
+
"compatible",
|
|
173
|
+
"competent",
|
|
174
|
+
"competitive",
|
|
175
|
+
"complete",
|
|
176
|
+
"complex",
|
|
177
|
+
"complicated",
|
|
178
|
+
"comprehensive",
|
|
179
|
+
"compulsory",
|
|
180
|
+
"conceptual",
|
|
181
|
+
"concerned",
|
|
182
|
+
"concrete",
|
|
183
|
+
"condemned",
|
|
184
|
+
"confident",
|
|
185
|
+
"confidential",
|
|
186
|
+
"confused",
|
|
187
|
+
"conscious",
|
|
188
|
+
"conservation",
|
|
189
|
+
"conservative",
|
|
190
|
+
"considerable",
|
|
191
|
+
"consistent",
|
|
192
|
+
"constant",
|
|
193
|
+
"constitutional",
|
|
194
|
+
"contemporary",
|
|
195
|
+
"content",
|
|
196
|
+
"continental",
|
|
197
|
+
"continued",
|
|
198
|
+
"continuing",
|
|
199
|
+
"continuous",
|
|
200
|
+
"controlled",
|
|
201
|
+
"controversial",
|
|
202
|
+
"convenient",
|
|
203
|
+
"conventional",
|
|
204
|
+
"convinced",
|
|
205
|
+
"convincing",
|
|
206
|
+
"cooing",
|
|
207
|
+
"cool",
|
|
208
|
+
"cooperative",
|
|
209
|
+
"corporate",
|
|
210
|
+
"correct",
|
|
211
|
+
"corresponding",
|
|
212
|
+
"costly",
|
|
213
|
+
"courageous",
|
|
214
|
+
"crazy",
|
|
215
|
+
"creative",
|
|
216
|
+
"creepy",
|
|
217
|
+
"criminal",
|
|
218
|
+
"critical",
|
|
219
|
+
"crooked",
|
|
220
|
+
"crowded",
|
|
221
|
+
"crucial",
|
|
222
|
+
"crude",
|
|
223
|
+
"cruel",
|
|
224
|
+
"cuddly",
|
|
225
|
+
"cultural",
|
|
226
|
+
"curious",
|
|
227
|
+
"curly",
|
|
228
|
+
"current",
|
|
229
|
+
"curved",
|
|
230
|
+
"cute",
|
|
231
|
+
"daily",
|
|
232
|
+
"damaged",
|
|
233
|
+
"damp",
|
|
234
|
+
"dangerous",
|
|
235
|
+
"dark",
|
|
236
|
+
"dead",
|
|
237
|
+
"deaf",
|
|
238
|
+
"deafening",
|
|
239
|
+
"dear",
|
|
240
|
+
"decent",
|
|
241
|
+
"decisive",
|
|
242
|
+
"deep",
|
|
243
|
+
"defeated",
|
|
244
|
+
"defensive",
|
|
245
|
+
"defiant",
|
|
246
|
+
"definite",
|
|
247
|
+
"deliberate",
|
|
248
|
+
"delicate",
|
|
249
|
+
"delicious",
|
|
250
|
+
"delighted",
|
|
251
|
+
"delightful",
|
|
252
|
+
"democratic",
|
|
253
|
+
"dependent",
|
|
254
|
+
"depressed",
|
|
255
|
+
"desirable",
|
|
256
|
+
"desperate",
|
|
257
|
+
"detailed",
|
|
258
|
+
"determined",
|
|
259
|
+
"developed",
|
|
260
|
+
"developing",
|
|
261
|
+
"devoted",
|
|
262
|
+
"different",
|
|
263
|
+
"difficult",
|
|
264
|
+
"digital",
|
|
265
|
+
"diplomatic",
|
|
266
|
+
"direct",
|
|
267
|
+
"dirty",
|
|
268
|
+
"disabled",
|
|
269
|
+
"disappointed",
|
|
270
|
+
"disastrous",
|
|
271
|
+
"disciplinary",
|
|
272
|
+
"disgusted",
|
|
273
|
+
"distant",
|
|
274
|
+
"distinct",
|
|
275
|
+
"distinctive",
|
|
276
|
+
"distinguished",
|
|
277
|
+
"disturbed",
|
|
278
|
+
"disturbing",
|
|
279
|
+
"diverse",
|
|
280
|
+
"divine",
|
|
281
|
+
"dizzy",
|
|
282
|
+
"domestic",
|
|
283
|
+
"dominant",
|
|
284
|
+
"double",
|
|
285
|
+
"doubtful",
|
|
286
|
+
"drab",
|
|
287
|
+
"dramatic",
|
|
288
|
+
"dreadful",
|
|
289
|
+
"driving",
|
|
290
|
+
"drunk",
|
|
291
|
+
"dry",
|
|
292
|
+
"dual",
|
|
293
|
+
"due",
|
|
294
|
+
"dull",
|
|
295
|
+
"dusty",
|
|
296
|
+
"dying",
|
|
297
|
+
"dynamic",
|
|
298
|
+
"eager",
|
|
299
|
+
"early",
|
|
300
|
+
"eastern",
|
|
301
|
+
"easy",
|
|
302
|
+
"economic",
|
|
303
|
+
"educational",
|
|
304
|
+
"eerie",
|
|
305
|
+
"effective",
|
|
306
|
+
"efficient",
|
|
307
|
+
"elaborate",
|
|
308
|
+
"elated",
|
|
309
|
+
"elderly",
|
|
310
|
+
"eldest",
|
|
311
|
+
"electoral",
|
|
312
|
+
"electric",
|
|
313
|
+
"electrical",
|
|
314
|
+
"electronic",
|
|
315
|
+
"elegant",
|
|
316
|
+
"eligible",
|
|
317
|
+
"embarrassed",
|
|
318
|
+
"embarrassing",
|
|
319
|
+
"emotional",
|
|
320
|
+
"empirical",
|
|
321
|
+
"empty",
|
|
322
|
+
"enchanting",
|
|
323
|
+
"encouraging",
|
|
324
|
+
"endless",
|
|
325
|
+
"energetic",
|
|
326
|
+
"enormous",
|
|
327
|
+
"enthusiastic",
|
|
328
|
+
"entire",
|
|
329
|
+
"entitled",
|
|
330
|
+
"envious",
|
|
331
|
+
"environmental",
|
|
332
|
+
"equal",
|
|
333
|
+
"equivalent",
|
|
334
|
+
"essential",
|
|
335
|
+
"established",
|
|
336
|
+
"estimated",
|
|
337
|
+
"ethical",
|
|
338
|
+
"ethnic",
|
|
339
|
+
"eventual",
|
|
340
|
+
"everyday",
|
|
341
|
+
"evident",
|
|
342
|
+
"evil",
|
|
343
|
+
"evolutionary",
|
|
344
|
+
"exact",
|
|
345
|
+
"excellent",
|
|
346
|
+
"exceptional",
|
|
347
|
+
"excess",
|
|
348
|
+
"excessive",
|
|
349
|
+
"excited",
|
|
350
|
+
"exciting",
|
|
351
|
+
"exclusive",
|
|
352
|
+
"existing",
|
|
353
|
+
"exotic",
|
|
354
|
+
"expected",
|
|
355
|
+
"expensive",
|
|
356
|
+
"experienced",
|
|
357
|
+
"experimental",
|
|
358
|
+
"explicit",
|
|
359
|
+
"extended",
|
|
360
|
+
"extensive",
|
|
361
|
+
"external",
|
|
362
|
+
"extra",
|
|
363
|
+
"extraordinary",
|
|
364
|
+
"extreme",
|
|
365
|
+
"exuberant",
|
|
366
|
+
"faint",
|
|
367
|
+
"fair",
|
|
368
|
+
"faithful",
|
|
369
|
+
"familiar",
|
|
370
|
+
"famous",
|
|
371
|
+
"fancy",
|
|
372
|
+
"fantastic",
|
|
373
|
+
"far",
|
|
374
|
+
"fascinating",
|
|
375
|
+
"fashionable",
|
|
376
|
+
"fast",
|
|
377
|
+
"fat",
|
|
378
|
+
"fatal",
|
|
379
|
+
"favourable",
|
|
380
|
+
"favourite",
|
|
381
|
+
"federal",
|
|
382
|
+
"fellow",
|
|
383
|
+
"female",
|
|
384
|
+
"feminist",
|
|
385
|
+
"few",
|
|
386
|
+
"fierce",
|
|
387
|
+
"filthy",
|
|
388
|
+
"final",
|
|
389
|
+
"financial",
|
|
390
|
+
"fine",
|
|
391
|
+
"firm",
|
|
392
|
+
"fiscal",
|
|
393
|
+
"fit",
|
|
394
|
+
"fixed",
|
|
395
|
+
"flaky",
|
|
396
|
+
"flat",
|
|
397
|
+
"flexible",
|
|
398
|
+
"fluffy",
|
|
399
|
+
"fluttering",
|
|
400
|
+
"flying",
|
|
401
|
+
"following",
|
|
402
|
+
"fond",
|
|
403
|
+
"foolish",
|
|
404
|
+
"foreign",
|
|
405
|
+
"formal",
|
|
406
|
+
"formidable",
|
|
407
|
+
"forthcoming",
|
|
408
|
+
"fortunate",
|
|
409
|
+
"forward",
|
|
410
|
+
"fragile",
|
|
411
|
+
"frail",
|
|
412
|
+
"frantic",
|
|
413
|
+
"free",
|
|
414
|
+
"frequent",
|
|
415
|
+
"fresh",
|
|
416
|
+
"friendly",
|
|
417
|
+
"frightened",
|
|
418
|
+
"front",
|
|
419
|
+
"frozen",
|
|
420
|
+
"full",
|
|
421
|
+
"fun",
|
|
422
|
+
"functional",
|
|
423
|
+
"fundamental",
|
|
424
|
+
"funny",
|
|
425
|
+
"furious",
|
|
426
|
+
"future",
|
|
427
|
+
"fuzzy",
|
|
428
|
+
"gastric",
|
|
429
|
+
"gay",
|
|
430
|
+
"general",
|
|
431
|
+
"generous",
|
|
432
|
+
"genetic",
|
|
433
|
+
"gentle",
|
|
434
|
+
"genuine",
|
|
435
|
+
"geographical",
|
|
436
|
+
"giant",
|
|
437
|
+
"gigantic",
|
|
438
|
+
"given",
|
|
439
|
+
"glad",
|
|
440
|
+
"glamorous",
|
|
441
|
+
"gleaming",
|
|
442
|
+
"global",
|
|
443
|
+
"glorious",
|
|
444
|
+
"golden",
|
|
445
|
+
"good",
|
|
446
|
+
"gorgeous",
|
|
447
|
+
"gothic",
|
|
448
|
+
"governing",
|
|
449
|
+
"graceful",
|
|
450
|
+
"gradual",
|
|
451
|
+
"grand",
|
|
452
|
+
"grateful",
|
|
453
|
+
"greasy",
|
|
454
|
+
"great",
|
|
455
|
+
"grieving",
|
|
456
|
+
"grim",
|
|
457
|
+
"gross",
|
|
458
|
+
"grotesque",
|
|
459
|
+
"growing",
|
|
460
|
+
"grubby",
|
|
461
|
+
"grumpy",
|
|
462
|
+
"guilty",
|
|
463
|
+
"handicapped",
|
|
464
|
+
"handsome",
|
|
465
|
+
"happy",
|
|
466
|
+
"hard",
|
|
467
|
+
"harsh",
|
|
468
|
+
"head",
|
|
469
|
+
"healthy",
|
|
470
|
+
"heavy",
|
|
471
|
+
"helpful",
|
|
472
|
+
"helpless",
|
|
473
|
+
"hidden",
|
|
474
|
+
"high",
|
|
475
|
+
"hilarious",
|
|
476
|
+
"hissing",
|
|
477
|
+
"historic",
|
|
478
|
+
"historical",
|
|
479
|
+
"hollow",
|
|
480
|
+
"holy",
|
|
481
|
+
"homeless",
|
|
482
|
+
"homely",
|
|
483
|
+
"honest",
|
|
484
|
+
"horizontal",
|
|
485
|
+
"horrible",
|
|
486
|
+
"hostile",
|
|
487
|
+
"hot",
|
|
488
|
+
"huge",
|
|
489
|
+
"human",
|
|
490
|
+
"hungry",
|
|
491
|
+
"hurt",
|
|
492
|
+
"hushed",
|
|
493
|
+
"husky",
|
|
494
|
+
"icy",
|
|
495
|
+
"ideal",
|
|
496
|
+
"identical",
|
|
497
|
+
"ideological",
|
|
498
|
+
"ill",
|
|
499
|
+
"illegal",
|
|
500
|
+
"imaginative",
|
|
501
|
+
"immediate",
|
|
502
|
+
"immense",
|
|
503
|
+
"imperial",
|
|
504
|
+
"implicit",
|
|
505
|
+
"important",
|
|
506
|
+
"impossible",
|
|
507
|
+
"impressed",
|
|
508
|
+
"impressive",
|
|
509
|
+
"improved",
|
|
510
|
+
"inadequate",
|
|
511
|
+
"inappropriate",
|
|
512
|
+
"inclined",
|
|
513
|
+
"increased",
|
|
514
|
+
"increasing",
|
|
515
|
+
"incredible",
|
|
516
|
+
"independent",
|
|
517
|
+
"indirect",
|
|
518
|
+
"individual",
|
|
519
|
+
"industrial",
|
|
520
|
+
"inevitable",
|
|
521
|
+
"influential",
|
|
522
|
+
"informal",
|
|
523
|
+
"inherent",
|
|
524
|
+
"initial",
|
|
525
|
+
"injured",
|
|
526
|
+
"inland",
|
|
527
|
+
"inner",
|
|
528
|
+
"innocent",
|
|
529
|
+
"innovative",
|
|
530
|
+
"inquisitive",
|
|
531
|
+
"instant",
|
|
532
|
+
"institutional",
|
|
533
|
+
"insufficient",
|
|
534
|
+
"intact",
|
|
535
|
+
"integral",
|
|
536
|
+
"integrated",
|
|
537
|
+
"intellectual",
|
|
538
|
+
"intelligent",
|
|
539
|
+
"intense",
|
|
540
|
+
"intensive",
|
|
541
|
+
"interested",
|
|
542
|
+
"interesting",
|
|
543
|
+
"interim",
|
|
544
|
+
"interior",
|
|
545
|
+
"intermediate",
|
|
546
|
+
"internal",
|
|
547
|
+
"international",
|
|
548
|
+
"intimate",
|
|
549
|
+
"invisible",
|
|
550
|
+
"involved",
|
|
551
|
+
"irrelevant",
|
|
552
|
+
"isolated",
|
|
553
|
+
"itchy",
|
|
554
|
+
"jealous",
|
|
555
|
+
"jittery",
|
|
556
|
+
"joint",
|
|
557
|
+
"jolly",
|
|
558
|
+
"joyous",
|
|
559
|
+
"judicial",
|
|
560
|
+
"juicy",
|
|
561
|
+
"junior",
|
|
562
|
+
"just",
|
|
563
|
+
"keen",
|
|
564
|
+
"key",
|
|
565
|
+
"kind",
|
|
566
|
+
"known",
|
|
567
|
+
"labour",
|
|
568
|
+
"large",
|
|
569
|
+
"late",
|
|
570
|
+
"latin",
|
|
571
|
+
"lazy",
|
|
572
|
+
"leading",
|
|
573
|
+
"left",
|
|
574
|
+
"legal",
|
|
575
|
+
"legislative",
|
|
576
|
+
"legitimate",
|
|
577
|
+
"lengthy",
|
|
578
|
+
"lesser",
|
|
579
|
+
"level",
|
|
580
|
+
"lexical",
|
|
581
|
+
"liable",
|
|
582
|
+
"liberal",
|
|
583
|
+
"light",
|
|
584
|
+
"like",
|
|
585
|
+
"likely",
|
|
586
|
+
"limited",
|
|
587
|
+
"linear",
|
|
588
|
+
"linguistic",
|
|
589
|
+
"liquid",
|
|
590
|
+
"literary",
|
|
591
|
+
"little",
|
|
592
|
+
"live",
|
|
593
|
+
"lively",
|
|
594
|
+
"living",
|
|
595
|
+
"local",
|
|
596
|
+
"logical",
|
|
597
|
+
"lonely",
|
|
598
|
+
"long",
|
|
599
|
+
"loose",
|
|
600
|
+
"lost",
|
|
601
|
+
"loud",
|
|
602
|
+
"lovely",
|
|
603
|
+
"low",
|
|
604
|
+
"loyal",
|
|
605
|
+
"lucky",
|
|
606
|
+
"mad",
|
|
607
|
+
"magic",
|
|
608
|
+
"magnetic",
|
|
609
|
+
"magnificent",
|
|
610
|
+
"main",
|
|
611
|
+
"major",
|
|
612
|
+
"male",
|
|
613
|
+
"mammoth",
|
|
614
|
+
"managerial",
|
|
615
|
+
"managing",
|
|
616
|
+
"manual",
|
|
617
|
+
"many",
|
|
618
|
+
"marginal",
|
|
619
|
+
"marine",
|
|
620
|
+
"marked",
|
|
621
|
+
"married",
|
|
622
|
+
"marvellous",
|
|
623
|
+
"marxist",
|
|
624
|
+
"mass",
|
|
625
|
+
"massive",
|
|
626
|
+
"mathematical",
|
|
627
|
+
"mature",
|
|
628
|
+
"maximum",
|
|
629
|
+
"mean",
|
|
630
|
+
"meaningful",
|
|
631
|
+
"mechanical",
|
|
632
|
+
"medical",
|
|
633
|
+
"medieval",
|
|
634
|
+
"melodic",
|
|
635
|
+
"melted",
|
|
636
|
+
"mental",
|
|
637
|
+
"mere",
|
|
638
|
+
"metropolitan",
|
|
639
|
+
"mid",
|
|
640
|
+
"middle",
|
|
641
|
+
"mighty",
|
|
642
|
+
"mild",
|
|
643
|
+
"military",
|
|
644
|
+
"miniature",
|
|
645
|
+
"minimal",
|
|
646
|
+
"minimum",
|
|
647
|
+
"ministerial",
|
|
648
|
+
"minor",
|
|
649
|
+
"miserable",
|
|
650
|
+
"misleading",
|
|
651
|
+
"missing",
|
|
652
|
+
"misty",
|
|
653
|
+
"mixed",
|
|
654
|
+
"moaning",
|
|
655
|
+
"mobile",
|
|
656
|
+
"moderate",
|
|
657
|
+
"modern",
|
|
658
|
+
"modest",
|
|
659
|
+
"molecular",
|
|
660
|
+
"monetary",
|
|
661
|
+
"monthly",
|
|
662
|
+
"moral",
|
|
663
|
+
"motionless",
|
|
664
|
+
"muddy",
|
|
665
|
+
"multiple",
|
|
666
|
+
"mushy",
|
|
667
|
+
"musical",
|
|
668
|
+
"mute",
|
|
669
|
+
"mutual",
|
|
670
|
+
"mysterious",
|
|
671
|
+
"naked",
|
|
672
|
+
"narrow",
|
|
673
|
+
"nasty",
|
|
674
|
+
"national",
|
|
675
|
+
"native",
|
|
676
|
+
"natural",
|
|
677
|
+
"naughty",
|
|
678
|
+
"naval",
|
|
679
|
+
"near",
|
|
680
|
+
"nearby",
|
|
681
|
+
"neat",
|
|
682
|
+
"necessary",
|
|
683
|
+
"negative",
|
|
684
|
+
"neighbouring",
|
|
685
|
+
"nervous",
|
|
686
|
+
"net",
|
|
687
|
+
"neutral",
|
|
688
|
+
"new",
|
|
689
|
+
"nice",
|
|
690
|
+
"noble",
|
|
691
|
+
"noisy",
|
|
692
|
+
"normal",
|
|
693
|
+
"northern",
|
|
694
|
+
"nosy",
|
|
695
|
+
"notable",
|
|
696
|
+
"novel",
|
|
697
|
+
"nuclear",
|
|
698
|
+
"numerous",
|
|
699
|
+
"nursing",
|
|
700
|
+
"nutritious",
|
|
701
|
+
"nutty",
|
|
702
|
+
"obedient",
|
|
703
|
+
"objective",
|
|
704
|
+
"obliged",
|
|
705
|
+
"obnoxious",
|
|
706
|
+
"obvious",
|
|
707
|
+
"occasional",
|
|
708
|
+
"occupational",
|
|
709
|
+
"odd",
|
|
710
|
+
"official",
|
|
711
|
+
"old",
|
|
712
|
+
"olympic",
|
|
713
|
+
"only",
|
|
714
|
+
"open",
|
|
715
|
+
"operational",
|
|
716
|
+
"opposite",
|
|
717
|
+
"optimistic",
|
|
718
|
+
"oral",
|
|
719
|
+
"ordinary",
|
|
720
|
+
"organic",
|
|
721
|
+
"organisational",
|
|
722
|
+
"original",
|
|
723
|
+
"orthodox",
|
|
724
|
+
"other",
|
|
725
|
+
"outdoor",
|
|
726
|
+
"outer",
|
|
727
|
+
"outrageous",
|
|
728
|
+
"outside",
|
|
729
|
+
"outstanding",
|
|
730
|
+
"overall",
|
|
731
|
+
"overseas",
|
|
732
|
+
"overwhelming",
|
|
733
|
+
"painful",
|
|
734
|
+
"pale",
|
|
735
|
+
"panicky",
|
|
736
|
+
"parallel",
|
|
737
|
+
"parental",
|
|
738
|
+
"parliamentary",
|
|
739
|
+
"partial",
|
|
740
|
+
"particular",
|
|
741
|
+
"passing",
|
|
742
|
+
"passive",
|
|
743
|
+
"past",
|
|
744
|
+
"patient",
|
|
745
|
+
"payable",
|
|
746
|
+
"peaceful",
|
|
747
|
+
"peculiar",
|
|
748
|
+
"perfect",
|
|
749
|
+
"permanent",
|
|
750
|
+
"persistent",
|
|
751
|
+
"personal",
|
|
752
|
+
"petite",
|
|
753
|
+
"philosophical",
|
|
754
|
+
"physical",
|
|
755
|
+
"plain",
|
|
756
|
+
"planned",
|
|
757
|
+
"plastic",
|
|
758
|
+
"pleasant",
|
|
759
|
+
"pleased",
|
|
760
|
+
"poised",
|
|
761
|
+
"polite",
|
|
762
|
+
"political",
|
|
763
|
+
"poor",
|
|
764
|
+
"popular",
|
|
765
|
+
"positive",
|
|
766
|
+
"possible",
|
|
767
|
+
"potential",
|
|
768
|
+
"powerful",
|
|
769
|
+
"practical",
|
|
770
|
+
"precious",
|
|
771
|
+
"precise",
|
|
772
|
+
"preferred",
|
|
773
|
+
"pregnant",
|
|
774
|
+
"preliminary",
|
|
775
|
+
"premier",
|
|
776
|
+
"prepared",
|
|
777
|
+
"present",
|
|
778
|
+
"presidential",
|
|
779
|
+
"pretty",
|
|
780
|
+
"previous",
|
|
781
|
+
"prickly",
|
|
782
|
+
"primary",
|
|
783
|
+
"prime",
|
|
784
|
+
"primitive",
|
|
785
|
+
"principal",
|
|
786
|
+
"printed",
|
|
787
|
+
"prior",
|
|
788
|
+
"private",
|
|
789
|
+
"probable",
|
|
790
|
+
"productive",
|
|
791
|
+
"professional",
|
|
792
|
+
"profitable",
|
|
793
|
+
"profound",
|
|
794
|
+
"progressive",
|
|
795
|
+
"prominent",
|
|
796
|
+
"promising",
|
|
797
|
+
"proper",
|
|
798
|
+
"proposed",
|
|
799
|
+
"prospective",
|
|
800
|
+
"protective",
|
|
801
|
+
"proud",
|
|
802
|
+
"provincial",
|
|
803
|
+
"psychiatric",
|
|
804
|
+
"psychological",
|
|
805
|
+
"public",
|
|
806
|
+
"puny",
|
|
807
|
+
"pure",
|
|
808
|
+
"purring",
|
|
809
|
+
"puzzled",
|
|
810
|
+
"quaint",
|
|
811
|
+
"qualified",
|
|
812
|
+
"quarrelsome",
|
|
813
|
+
"querulous",
|
|
814
|
+
"quick",
|
|
815
|
+
"quickest",
|
|
816
|
+
"quiet",
|
|
817
|
+
"quintessential",
|
|
818
|
+
"quixotic",
|
|
819
|
+
"racial",
|
|
820
|
+
"radical",
|
|
821
|
+
"rainy",
|
|
822
|
+
"random",
|
|
823
|
+
"rapid",
|
|
824
|
+
"rare",
|
|
825
|
+
"raspy",
|
|
826
|
+
"rational",
|
|
827
|
+
"ratty",
|
|
828
|
+
"raw",
|
|
829
|
+
"ready",
|
|
830
|
+
"real",
|
|
831
|
+
"realistic",
|
|
832
|
+
"rear",
|
|
833
|
+
"reasonable",
|
|
834
|
+
"recent",
|
|
835
|
+
"reduced",
|
|
836
|
+
"redundant",
|
|
837
|
+
"regional",
|
|
838
|
+
"registered",
|
|
839
|
+
"regular",
|
|
840
|
+
"regulatory",
|
|
841
|
+
"related",
|
|
842
|
+
"relative",
|
|
843
|
+
"relaxed",
|
|
844
|
+
"relevant",
|
|
845
|
+
"reliable",
|
|
846
|
+
"relieved",
|
|
847
|
+
"religious",
|
|
848
|
+
"reluctant",
|
|
849
|
+
"remaining",
|
|
850
|
+
"remarkable",
|
|
851
|
+
"remote",
|
|
852
|
+
"renewed",
|
|
853
|
+
"representative",
|
|
854
|
+
"repulsive",
|
|
855
|
+
"required",
|
|
856
|
+
"resident",
|
|
857
|
+
"residential",
|
|
858
|
+
"resonant",
|
|
859
|
+
"respectable",
|
|
860
|
+
"respective",
|
|
861
|
+
"responsible",
|
|
862
|
+
"resulting",
|
|
863
|
+
"retail",
|
|
864
|
+
"retired",
|
|
865
|
+
"revolutionary",
|
|
866
|
+
"rich",
|
|
867
|
+
"ridiculous",
|
|
868
|
+
"right",
|
|
869
|
+
"rigid",
|
|
870
|
+
"ripe",
|
|
871
|
+
"rising",
|
|
872
|
+
"rival",
|
|
873
|
+
"roasted",
|
|
874
|
+
"robust",
|
|
875
|
+
"rolling",
|
|
876
|
+
"romantic",
|
|
877
|
+
"rotten",
|
|
878
|
+
"rough",
|
|
879
|
+
"round",
|
|
880
|
+
"royal",
|
|
881
|
+
"rubber",
|
|
882
|
+
"rude",
|
|
883
|
+
"ruling",
|
|
884
|
+
"running",
|
|
885
|
+
"rural",
|
|
886
|
+
"sacred",
|
|
887
|
+
"sad",
|
|
888
|
+
"safe",
|
|
889
|
+
"salty",
|
|
890
|
+
"satisfactory",
|
|
891
|
+
"satisfied",
|
|
892
|
+
"scared",
|
|
893
|
+
"scary",
|
|
894
|
+
"scattered",
|
|
895
|
+
"scientific",
|
|
896
|
+
"scornful",
|
|
897
|
+
"scrawny",
|
|
898
|
+
"screeching",
|
|
899
|
+
"secondary",
|
|
900
|
+
"secret",
|
|
901
|
+
"secure",
|
|
902
|
+
"select",
|
|
903
|
+
"selected",
|
|
904
|
+
"selective",
|
|
905
|
+
"selfish",
|
|
906
|
+
"semantic",
|
|
907
|
+
"senior",
|
|
908
|
+
"sensible",
|
|
909
|
+
"sensitive",
|
|
910
|
+
"separate",
|
|
911
|
+
"serious",
|
|
912
|
+
"severe",
|
|
913
|
+
"sexual",
|
|
914
|
+
"shaggy",
|
|
915
|
+
"shaky",
|
|
916
|
+
"shallow",
|
|
917
|
+
"shared",
|
|
918
|
+
"sharp",
|
|
919
|
+
"sheer",
|
|
920
|
+
"shiny",
|
|
921
|
+
"shivering",
|
|
922
|
+
"shocked",
|
|
923
|
+
"short",
|
|
924
|
+
"shrill",
|
|
925
|
+
"shy",
|
|
926
|
+
"sick",
|
|
927
|
+
"significant",
|
|
928
|
+
"silent",
|
|
929
|
+
"silky",
|
|
930
|
+
"silly",
|
|
931
|
+
"similar",
|
|
932
|
+
"simple",
|
|
933
|
+
"single",
|
|
934
|
+
"skilled",
|
|
935
|
+
"skinny",
|
|
936
|
+
"sleepy",
|
|
937
|
+
"slight",
|
|
938
|
+
"slim",
|
|
939
|
+
"slimy",
|
|
940
|
+
"slippery",
|
|
941
|
+
"slow",
|
|
942
|
+
"small",
|
|
943
|
+
"smart",
|
|
944
|
+
"smiling",
|
|
945
|
+
"smoggy",
|
|
946
|
+
"smooth",
|
|
947
|
+
"social",
|
|
948
|
+
"socialist",
|
|
949
|
+
"soft",
|
|
950
|
+
"solar",
|
|
951
|
+
"sole",
|
|
952
|
+
"solid",
|
|
953
|
+
"sophisticated",
|
|
954
|
+
"sore",
|
|
955
|
+
"sorry",
|
|
956
|
+
"sound",
|
|
957
|
+
"sour",
|
|
958
|
+
"southern",
|
|
959
|
+
"soviet",
|
|
960
|
+
"spare",
|
|
961
|
+
"sparkling",
|
|
962
|
+
"spatial",
|
|
963
|
+
"special",
|
|
964
|
+
"specific",
|
|
965
|
+
"specified",
|
|
966
|
+
"spectacular",
|
|
967
|
+
"spicy",
|
|
968
|
+
"spiritual",
|
|
969
|
+
"splendid",
|
|
970
|
+
"spontaneous",
|
|
971
|
+
"sporting",
|
|
972
|
+
"spotless",
|
|
973
|
+
"spotty",
|
|
974
|
+
"square",
|
|
975
|
+
"squealing",
|
|
976
|
+
"stable",
|
|
977
|
+
"stale",
|
|
978
|
+
"standard",
|
|
979
|
+
"static",
|
|
980
|
+
"statistical",
|
|
981
|
+
"statutory",
|
|
982
|
+
"steady",
|
|
983
|
+
"steep",
|
|
984
|
+
"sticky",
|
|
985
|
+
"stiff",
|
|
986
|
+
"still",
|
|
987
|
+
"stingy",
|
|
988
|
+
"stormy",
|
|
989
|
+
"straight",
|
|
990
|
+
"straightforward",
|
|
991
|
+
"strange",
|
|
992
|
+
"strategic",
|
|
993
|
+
"strict",
|
|
994
|
+
"striking",
|
|
995
|
+
"striped",
|
|
996
|
+
"strong",
|
|
997
|
+
"structural",
|
|
998
|
+
"stuck",
|
|
999
|
+
"stupid",
|
|
1000
|
+
"subjective",
|
|
1001
|
+
"subsequent",
|
|
1002
|
+
"substantial",
|
|
1003
|
+
"subtle",
|
|
1004
|
+
"successful",
|
|
1005
|
+
"successive",
|
|
1006
|
+
"sudden",
|
|
1007
|
+
"sufficient",
|
|
1008
|
+
"suitable",
|
|
1009
|
+
"sunny",
|
|
1010
|
+
"super",
|
|
1011
|
+
"superb",
|
|
1012
|
+
"superior",
|
|
1013
|
+
"supporting",
|
|
1014
|
+
"supposed",
|
|
1015
|
+
"supreme",
|
|
1016
|
+
"sure",
|
|
1017
|
+
"surprised",
|
|
1018
|
+
"surprising",
|
|
1019
|
+
"surrounding",
|
|
1020
|
+
"surviving",
|
|
1021
|
+
"suspicious",
|
|
1022
|
+
"sweet",
|
|
1023
|
+
"swift",
|
|
1024
|
+
"symbolic",
|
|
1025
|
+
"sympathetic",
|
|
1026
|
+
"systematic",
|
|
1027
|
+
"tall",
|
|
1028
|
+
"tame",
|
|
1029
|
+
"tart",
|
|
1030
|
+
"tasteless",
|
|
1031
|
+
"tasty",
|
|
1032
|
+
"technical",
|
|
1033
|
+
"technological",
|
|
1034
|
+
"teenage",
|
|
1035
|
+
"temporary",
|
|
1036
|
+
"tender",
|
|
1037
|
+
"tense",
|
|
1038
|
+
"terrible",
|
|
1039
|
+
"territorial",
|
|
1040
|
+
"testy",
|
|
1041
|
+
"theoretical",
|
|
1042
|
+
"thick",
|
|
1043
|
+
"thin",
|
|
1044
|
+
"thirsty",
|
|
1045
|
+
"thorough",
|
|
1046
|
+
"thoughtful",
|
|
1047
|
+
"thoughtless",
|
|
1048
|
+
"thundering",
|
|
1049
|
+
"tight",
|
|
1050
|
+
"tiny",
|
|
1051
|
+
"tired",
|
|
1052
|
+
"top",
|
|
1053
|
+
"total",
|
|
1054
|
+
"tough",
|
|
1055
|
+
"toxic",
|
|
1056
|
+
"traditional",
|
|
1057
|
+
"tragic",
|
|
1058
|
+
"tremendous",
|
|
1059
|
+
"tricky",
|
|
1060
|
+
"tropical",
|
|
1061
|
+
"troubled",
|
|
1062
|
+
"typical",
|
|
1063
|
+
"ugliest",
|
|
1064
|
+
"ugly",
|
|
1065
|
+
"ultimate",
|
|
1066
|
+
"unable",
|
|
1067
|
+
"unacceptable",
|
|
1068
|
+
"unaware",
|
|
1069
|
+
"uncertain",
|
|
1070
|
+
"unchanged",
|
|
1071
|
+
"uncomfortable",
|
|
1072
|
+
"unconscious",
|
|
1073
|
+
"underground",
|
|
1074
|
+
"underlying",
|
|
1075
|
+
"unemployed",
|
|
1076
|
+
"uneven",
|
|
1077
|
+
"unexpected",
|
|
1078
|
+
"unfair",
|
|
1079
|
+
"unfortunate",
|
|
1080
|
+
"unhappy",
|
|
1081
|
+
"uniform",
|
|
1082
|
+
"uninterested",
|
|
1083
|
+
"unique",
|
|
1084
|
+
"united",
|
|
1085
|
+
"universal",
|
|
1086
|
+
"unknown",
|
|
1087
|
+
"unlikely",
|
|
1088
|
+
"unnecessary",
|
|
1089
|
+
"unpleasant",
|
|
1090
|
+
"unsightly",
|
|
1091
|
+
"unusual",
|
|
1092
|
+
"unwilling",
|
|
1093
|
+
"upper",
|
|
1094
|
+
"upset",
|
|
1095
|
+
"uptight",
|
|
1096
|
+
"urban",
|
|
1097
|
+
"urgent",
|
|
1098
|
+
"used",
|
|
1099
|
+
"useful",
|
|
1100
|
+
"useless",
|
|
1101
|
+
"usual",
|
|
1102
|
+
"vague",
|
|
1103
|
+
"valid",
|
|
1104
|
+
"valuable",
|
|
1105
|
+
"variable",
|
|
1106
|
+
"varied",
|
|
1107
|
+
"various",
|
|
1108
|
+
"varying",
|
|
1109
|
+
"vast",
|
|
1110
|
+
"verbal",
|
|
1111
|
+
"vertical",
|
|
1112
|
+
"vicarious",
|
|
1113
|
+
"vicious",
|
|
1114
|
+
"victorious",
|
|
1115
|
+
"violent",
|
|
1116
|
+
"visible",
|
|
1117
|
+
"visiting",
|
|
1118
|
+
"visual",
|
|
1119
|
+
"vital",
|
|
1120
|
+
"vivacious",
|
|
1121
|
+
"vivid",
|
|
1122
|
+
"vocal",
|
|
1123
|
+
"vocational",
|
|
1124
|
+
"voiceless",
|
|
1125
|
+
"voluminous",
|
|
1126
|
+
"voluntary",
|
|
1127
|
+
"vulnerable",
|
|
1128
|
+
"wandering",
|
|
1129
|
+
"warm",
|
|
1130
|
+
"wasteful",
|
|
1131
|
+
"watery",
|
|
1132
|
+
"weak",
|
|
1133
|
+
"wealthy",
|
|
1134
|
+
"weary",
|
|
1135
|
+
"weekly",
|
|
1136
|
+
"weird",
|
|
1137
|
+
"welcome",
|
|
1138
|
+
"well",
|
|
1139
|
+
"western",
|
|
1140
|
+
"wet",
|
|
1141
|
+
"whispering",
|
|
1142
|
+
"whole",
|
|
1143
|
+
"wicked",
|
|
1144
|
+
"wide",
|
|
1145
|
+
"widespread",
|
|
1146
|
+
"wild",
|
|
1147
|
+
"willing",
|
|
1148
|
+
"willowy",
|
|
1149
|
+
"wily",
|
|
1150
|
+
"wise",
|
|
1151
|
+
"wispy",
|
|
1152
|
+
"witty",
|
|
1153
|
+
"wonderful",
|
|
1154
|
+
"wooden",
|
|
1155
|
+
"working",
|
|
1156
|
+
"worldwide",
|
|
1157
|
+
"worried",
|
|
1158
|
+
"worrying",
|
|
1159
|
+
"worthwhile",
|
|
1160
|
+
"worthy",
|
|
1161
|
+
"written",
|
|
1162
|
+
"wrong",
|
|
1163
|
+
"xenial",
|
|
1164
|
+
"xeric",
|
|
1165
|
+
"yawning",
|
|
1166
|
+
"yearning",
|
|
1167
|
+
"young",
|
|
1168
|
+
"youngest",
|
|
1169
|
+
"youthful",
|
|
1170
|
+
"zany",
|
|
1171
|
+
"zealous",
|
|
1172
|
+
"zesty",
|
|
1173
|
+
"zippy",
|
|
153
1174
|
];
|
|
154
1175
|
|
|
155
1176
|
const NOUNS = [
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
1177
|
+
"aardvark",
|
|
1178
|
+
"aardwolf",
|
|
1179
|
+
"albatross",
|
|
1180
|
+
"alligator",
|
|
1181
|
+
"alpaca",
|
|
1182
|
+
"amphibian",
|
|
1183
|
+
"anaconda",
|
|
1184
|
+
"angelfish",
|
|
1185
|
+
"anglerfish",
|
|
1186
|
+
"ant",
|
|
1187
|
+
"anteater",
|
|
1188
|
+
"antelope",
|
|
1189
|
+
"antlion",
|
|
1190
|
+
"ape",
|
|
1191
|
+
"aphid",
|
|
1192
|
+
"armadillo",
|
|
1193
|
+
"asp",
|
|
1194
|
+
"baboon",
|
|
1195
|
+
"badger",
|
|
1196
|
+
"bandicoot",
|
|
1197
|
+
"barnacle",
|
|
1198
|
+
"barracuda",
|
|
1199
|
+
"basilisk",
|
|
1200
|
+
"bass",
|
|
1201
|
+
"bat",
|
|
1202
|
+
"bear",
|
|
1203
|
+
"beaver",
|
|
1204
|
+
"bedbug",
|
|
1205
|
+
"bee",
|
|
1206
|
+
"beetle",
|
|
1207
|
+
"bird",
|
|
1208
|
+
"bison",
|
|
1209
|
+
"blackbird",
|
|
1210
|
+
"boa",
|
|
1211
|
+
"boar",
|
|
1212
|
+
"bobcat",
|
|
1213
|
+
"bobolink",
|
|
1214
|
+
"bonobo",
|
|
1215
|
+
"booby",
|
|
1216
|
+
"bovid",
|
|
1217
|
+
"bug",
|
|
1218
|
+
"butterfly",
|
|
1219
|
+
"buzzard",
|
|
1220
|
+
"camel",
|
|
1221
|
+
"canid",
|
|
1222
|
+
"capybara",
|
|
1223
|
+
"cardinal",
|
|
1224
|
+
"caribou",
|
|
1225
|
+
"carp",
|
|
1226
|
+
"cat",
|
|
1227
|
+
"caterpillar",
|
|
1228
|
+
"catfish",
|
|
1229
|
+
"catshark",
|
|
1230
|
+
"cattle",
|
|
1231
|
+
"centipede",
|
|
1232
|
+
"cephalopod",
|
|
1233
|
+
"chameleon",
|
|
1234
|
+
"cheetah",
|
|
1235
|
+
"chickadee",
|
|
1236
|
+
"chicken",
|
|
1237
|
+
"chimpanzee",
|
|
1238
|
+
"chinchilla",
|
|
1239
|
+
"chipmunk",
|
|
1240
|
+
"cicada",
|
|
1241
|
+
"clam",
|
|
1242
|
+
"clownfish",
|
|
1243
|
+
"cobra",
|
|
1244
|
+
"cockroach",
|
|
1245
|
+
"cod",
|
|
1246
|
+
"condor",
|
|
1247
|
+
"constrictor",
|
|
1248
|
+
"coral",
|
|
1249
|
+
"cougar",
|
|
1250
|
+
"cow",
|
|
1251
|
+
"coyote",
|
|
1252
|
+
"crab",
|
|
1253
|
+
"crane",
|
|
1254
|
+
"crawdad",
|
|
1255
|
+
"crayfish",
|
|
1256
|
+
"cricket",
|
|
1257
|
+
"crocodile",
|
|
1258
|
+
"crow",
|
|
1259
|
+
"cuckoo",
|
|
1260
|
+
"damselfly",
|
|
1261
|
+
"deer",
|
|
1262
|
+
"dingo",
|
|
1263
|
+
"dinosaur",
|
|
1264
|
+
"dog",
|
|
1265
|
+
"dolphin",
|
|
1266
|
+
"donkey",
|
|
1267
|
+
"dormouse",
|
|
1268
|
+
"dove",
|
|
1269
|
+
"dragon",
|
|
1270
|
+
"dragonfly",
|
|
1271
|
+
"duck",
|
|
1272
|
+
"eagle",
|
|
1273
|
+
"earthworm",
|
|
1274
|
+
"earwig",
|
|
1275
|
+
"echidna",
|
|
1276
|
+
"eel",
|
|
1277
|
+
"egret",
|
|
1278
|
+
"elephant",
|
|
1279
|
+
"elk",
|
|
1280
|
+
"emu",
|
|
1281
|
+
"ermine",
|
|
1282
|
+
"falcon",
|
|
1283
|
+
"ferret",
|
|
1284
|
+
"finch",
|
|
1285
|
+
"firefly",
|
|
1286
|
+
"fish",
|
|
1287
|
+
"flamingo",
|
|
1288
|
+
"flea",
|
|
1289
|
+
"fly",
|
|
1290
|
+
"flyingfish",
|
|
1291
|
+
"fowl",
|
|
1292
|
+
"fox",
|
|
1293
|
+
"frog",
|
|
1294
|
+
"gamefowl",
|
|
1295
|
+
"gazelle",
|
|
1296
|
+
"gecko",
|
|
1297
|
+
"gerbil",
|
|
1298
|
+
"gibbon",
|
|
1299
|
+
"giraffe",
|
|
1300
|
+
"goat",
|
|
1301
|
+
"goldfish",
|
|
1302
|
+
"goose",
|
|
1303
|
+
"gopher",
|
|
1304
|
+
"gorilla",
|
|
1305
|
+
"grasshopper",
|
|
1306
|
+
"grouse",
|
|
1307
|
+
"guan",
|
|
1308
|
+
"guanaco",
|
|
1309
|
+
"guineafowl",
|
|
1310
|
+
"gull",
|
|
1311
|
+
"guppy",
|
|
1312
|
+
"haddock",
|
|
1313
|
+
"halibut",
|
|
1314
|
+
"hamster",
|
|
1315
|
+
"hare",
|
|
1316
|
+
"harrier",
|
|
1317
|
+
"hawk",
|
|
1318
|
+
"hedgehog",
|
|
1319
|
+
"heron",
|
|
1320
|
+
"herring",
|
|
1321
|
+
"hippopotamus",
|
|
1322
|
+
"hookworm",
|
|
1323
|
+
"hornet",
|
|
1324
|
+
"horse",
|
|
1325
|
+
"hoverfly",
|
|
1326
|
+
"hummingbird",
|
|
1327
|
+
"hyena",
|
|
1328
|
+
"iguana",
|
|
1329
|
+
"impala",
|
|
1330
|
+
"jackal",
|
|
1331
|
+
"jaguar",
|
|
1332
|
+
"jay",
|
|
1333
|
+
"jellyfish",
|
|
1334
|
+
"kangaroo",
|
|
1335
|
+
"kingfisher",
|
|
1336
|
+
"kite",
|
|
1337
|
+
"kiwi",
|
|
1338
|
+
"koala",
|
|
1339
|
+
"koi",
|
|
1340
|
+
"krill",
|
|
1341
|
+
"ladybug",
|
|
1342
|
+
"lamprey",
|
|
1343
|
+
"lark",
|
|
1344
|
+
"leech",
|
|
1345
|
+
"lemming",
|
|
1346
|
+
"lemur",
|
|
1347
|
+
"leopard",
|
|
1348
|
+
"leopon",
|
|
1349
|
+
"limpet",
|
|
1350
|
+
"lion",
|
|
1351
|
+
"lizard",
|
|
1352
|
+
"llama",
|
|
1353
|
+
"lobster",
|
|
1354
|
+
"locust",
|
|
1355
|
+
"loon",
|
|
1356
|
+
"louse",
|
|
1357
|
+
"lungfish",
|
|
1358
|
+
"lynx",
|
|
1359
|
+
"macaw",
|
|
1360
|
+
"mackerel",
|
|
1361
|
+
"magpie",
|
|
1362
|
+
"mammal",
|
|
1363
|
+
"manatee",
|
|
1364
|
+
"mandrill",
|
|
1365
|
+
"marlin",
|
|
1366
|
+
"marmoset",
|
|
1367
|
+
"marmot",
|
|
1368
|
+
"marsupial",
|
|
1369
|
+
"marten",
|
|
1370
|
+
"mastodon",
|
|
1371
|
+
"meadowlark",
|
|
1372
|
+
"meerkat",
|
|
1373
|
+
"mink",
|
|
1374
|
+
"minnow",
|
|
1375
|
+
"mite",
|
|
1376
|
+
"mockingbird",
|
|
1377
|
+
"mole",
|
|
1378
|
+
"mollusk",
|
|
1379
|
+
"mongoose",
|
|
1380
|
+
"monkey",
|
|
1381
|
+
"moose",
|
|
1382
|
+
"mosquito",
|
|
1383
|
+
"moth",
|
|
1384
|
+
"mouse",
|
|
1385
|
+
"mule",
|
|
1386
|
+
"muskox",
|
|
1387
|
+
"narwhal",
|
|
1388
|
+
"newt",
|
|
1389
|
+
"nightingale",
|
|
1390
|
+
"ocelot",
|
|
1391
|
+
"octopus",
|
|
1392
|
+
"opossum",
|
|
1393
|
+
"orangutan",
|
|
1394
|
+
"orca",
|
|
1395
|
+
"ostrich",
|
|
1396
|
+
"otter",
|
|
1397
|
+
"owl",
|
|
1398
|
+
"ox",
|
|
1399
|
+
"panda",
|
|
1400
|
+
"panther",
|
|
1401
|
+
"parakeet",
|
|
1402
|
+
"parrot",
|
|
1403
|
+
"parrotfish",
|
|
1404
|
+
"partridge",
|
|
1405
|
+
"peacock",
|
|
1406
|
+
"peafowl",
|
|
1407
|
+
"pelican",
|
|
1408
|
+
"penguin",
|
|
1409
|
+
"perch",
|
|
1410
|
+
"pheasant",
|
|
1411
|
+
"pig",
|
|
1412
|
+
"pigeon",
|
|
1413
|
+
"pike",
|
|
1414
|
+
"pinniped",
|
|
1415
|
+
"piranha",
|
|
1416
|
+
"planarian",
|
|
1417
|
+
"platypus",
|
|
1418
|
+
"pony",
|
|
1419
|
+
"porcupine",
|
|
1420
|
+
"porpoise",
|
|
1421
|
+
"possum",
|
|
1422
|
+
"prawn",
|
|
1423
|
+
"primate",
|
|
1424
|
+
"ptarmigan",
|
|
1425
|
+
"puffin",
|
|
1426
|
+
"puma",
|
|
1427
|
+
"python",
|
|
1428
|
+
"quail",
|
|
1429
|
+
"quelea",
|
|
1430
|
+
"quokka",
|
|
1431
|
+
"rabbit",
|
|
1432
|
+
"raccoon",
|
|
1433
|
+
"rat",
|
|
1434
|
+
"rattlesnake",
|
|
1435
|
+
"raven",
|
|
1436
|
+
"reindeer",
|
|
1437
|
+
"reptile",
|
|
1438
|
+
"rhinoceros",
|
|
1439
|
+
"roadrunner",
|
|
1440
|
+
"rodent",
|
|
1441
|
+
"rook",
|
|
1442
|
+
"rooster",
|
|
1443
|
+
"roundworm",
|
|
1444
|
+
"sailfish",
|
|
1445
|
+
"salamander",
|
|
1446
|
+
"salmon",
|
|
1447
|
+
"sawfish",
|
|
1448
|
+
"scallop",
|
|
1449
|
+
"scorpion",
|
|
1450
|
+
"seahorse",
|
|
1451
|
+
"shark",
|
|
1452
|
+
"sheep",
|
|
1453
|
+
"shrew",
|
|
1454
|
+
"shrimp",
|
|
1455
|
+
"silkworm",
|
|
1456
|
+
"silverfish",
|
|
1457
|
+
"skink",
|
|
1458
|
+
"skunk",
|
|
1459
|
+
"sloth",
|
|
1460
|
+
"slug",
|
|
1461
|
+
"smelt",
|
|
1462
|
+
"snail",
|
|
1463
|
+
"snake",
|
|
1464
|
+
"snipe",
|
|
1465
|
+
"sole",
|
|
1466
|
+
"sparrow",
|
|
1467
|
+
"spider",
|
|
1468
|
+
"spoonbill",
|
|
1469
|
+
"squid",
|
|
1470
|
+
"squirrel",
|
|
1471
|
+
"starfish",
|
|
1472
|
+
"stingray",
|
|
1473
|
+
"stoat",
|
|
1474
|
+
"stork",
|
|
1475
|
+
"sturgeon",
|
|
1476
|
+
"swallow",
|
|
1477
|
+
"swan",
|
|
1478
|
+
"swift",
|
|
1479
|
+
"swordfish",
|
|
1480
|
+
"swordtail",
|
|
1481
|
+
"tahr",
|
|
1482
|
+
"takin",
|
|
1483
|
+
"tapir",
|
|
1484
|
+
"tarantula",
|
|
1485
|
+
"tarsier",
|
|
1486
|
+
"termite",
|
|
1487
|
+
"tern",
|
|
1488
|
+
"thrush",
|
|
1489
|
+
"tick",
|
|
1490
|
+
"tiger",
|
|
1491
|
+
"tiglon",
|
|
1492
|
+
"toad",
|
|
1493
|
+
"tortoise",
|
|
1494
|
+
"toucan",
|
|
1495
|
+
"trout",
|
|
1496
|
+
"tuna",
|
|
1497
|
+
"turkey",
|
|
1498
|
+
"turtle",
|
|
1499
|
+
"tyrannosaurus",
|
|
1500
|
+
"unicorn",
|
|
1501
|
+
"urial",
|
|
1502
|
+
"vicuna",
|
|
1503
|
+
"viper",
|
|
1504
|
+
"vole",
|
|
1505
|
+
"vulture",
|
|
1506
|
+
"wallaby",
|
|
1507
|
+
"walrus",
|
|
1508
|
+
"warbler",
|
|
1509
|
+
"wasp",
|
|
1510
|
+
"weasel",
|
|
1511
|
+
"whale",
|
|
1512
|
+
"whippet",
|
|
1513
|
+
"whitefish",
|
|
1514
|
+
"wildcat",
|
|
1515
|
+
"wildebeest",
|
|
1516
|
+
"wildfowl",
|
|
1517
|
+
"wolf",
|
|
1518
|
+
"wolverine",
|
|
1519
|
+
"wombat",
|
|
1520
|
+
"woodpecker",
|
|
1521
|
+
"worm",
|
|
1522
|
+
"wren",
|
|
1523
|
+
"yak",
|
|
1524
|
+
"zebra",
|
|
195
1525
|
];
|
|
196
1526
|
|
|
197
1527
|
function capitalize(s: string): string {
|
|
198
|
-
|
|
1528
|
+
return s.charAt(0).toUpperCase() + s.slice(1);
|
|
199
1529
|
}
|
|
200
1530
|
|
|
201
1531
|
let usedNames = new Set<string>();
|
|
@@ -205,43 +1535,43 @@ let usedNames = new Set<string>();
|
|
|
205
1535
|
* Falls back to numeric suffix if all combinations exhausted.
|
|
206
1536
|
*/
|
|
207
1537
|
export function generateTaskName(): string {
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
1538
|
+
// Try random combinations first (50 attempts)
|
|
1539
|
+
for (let attempt = 0; attempt < 50; attempt++) {
|
|
1540
|
+
const adj = ADJECTIVES[Math.floor(Math.random() * ADJECTIVES.length)];
|
|
1541
|
+
const noun = NOUNS[Math.floor(Math.random() * NOUNS.length)];
|
|
1542
|
+
const name = `${capitalize(adj)}${capitalize(noun)}`;
|
|
1543
|
+
if (!usedNames.has(name)) {
|
|
1544
|
+
usedNames.add(name);
|
|
1545
|
+
return name;
|
|
1546
|
+
}
|
|
1547
|
+
}
|
|
218
1548
|
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
1549
|
+
// Exhaustive search if random fails
|
|
1550
|
+
for (const adj of ADJECTIVES) {
|
|
1551
|
+
for (const noun of NOUNS) {
|
|
1552
|
+
const name = `${capitalize(adj)}${capitalize(noun)}`;
|
|
1553
|
+
if (!usedNames.has(name)) {
|
|
1554
|
+
usedNames.add(name);
|
|
1555
|
+
return name;
|
|
1556
|
+
}
|
|
1557
|
+
}
|
|
1558
|
+
}
|
|
229
1559
|
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
1560
|
+
// All 426k combinations used, add numeric suffix
|
|
1561
|
+
let counter = 0;
|
|
1562
|
+
while (true) {
|
|
1563
|
+
const name = `Task${counter}`;
|
|
1564
|
+
if (!usedNames.has(name)) {
|
|
1565
|
+
usedNames.add(name);
|
|
1566
|
+
return name;
|
|
1567
|
+
}
|
|
1568
|
+
counter++;
|
|
1569
|
+
}
|
|
240
1570
|
}
|
|
241
1571
|
|
|
242
1572
|
/**
|
|
243
1573
|
* Reset name generator state (for testing).
|
|
244
1574
|
*/
|
|
245
1575
|
export function resetTaskNames(): void {
|
|
246
|
-
|
|
1576
|
+
usedNames = new Set<string>();
|
|
247
1577
|
}
|