@kudoai/ai-personas 1.2.0 → 1.4.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/README.md CHANGED
@@ -1,37 +1,60 @@
1
1
  <a id="top"></a>
2
2
 
3
- # > ai-personas
3
+ <div align="center">
4
+
5
+ # <a href="https://www.kudoai.com"><picture><source media="(prefers-color-scheme: dark)" srcset="https://cdn.jsdelivr.net/gh/KudoAI/kudoai.com@255f8fd/assets/images/icons/kudoai/white-on-black/icon400.png"></picture><img height=155 width="auto" src="https://cdn.jsdelivr.net/gh/KudoAI/kudoai.com@255f8fd/assets/images/icons/kudoai/black-on-white/icon400.png"></a><br>> KudoAI / ai-personas
4
6
 
5
7
  <a href="https://npm-compare.com/@kudoai/ai-personas/#timeRange=ALL">
6
8
  <img height=31 src="https://img.shields.io/npm/dm/@kudoai/ai-personas?logo=npm&color=af68ff&logoColor=white&labelColor=464646&style=for-the-badge"></a>
7
- <a href="https://github.com/KudoAI/ai-personas/releases/tag/node.js-v1.2.0">
8
- <img height=31 src="https://img.shields.io/badge/Latest_Build-1.2.0-32fcee.svg?logo=icinga&logoColor=white&labelColor=464646&style=for-the-badge"></a>
9
+ <a href="https://github.com/KudoAI/ai-personas/releases/tag/node.js-v1.4.0">
10
+ <img height=31 src="https://img.shields.io/badge/Latest_Build-1.4.0-32fcee.svg?logo=icinga&logoColor=white&labelColor=464646&style=for-the-badge"></a>
9
11
  <a href="#%EF%B8%8F-license">
10
12
  <img height=31 src="https://img.shields.io/badge/License-CC0--1.0/MIT-f99b27.svg?logo=internetarchive&logoColor=white&labelColor=464646&style=for-the-badge"></a>
11
13
  <a href="https://www.codefactor.io/repository/github/KudoAI/ai-personas">
12
14
  <img height=31 src="https://img.shields.io/codefactor/grade/github/KudoAI/ai-personas?label=Code+Quality&logo=codefactor&logoColor=white&labelColor=464646&color=a0fc55&style=for-the-badge"></a>
13
15
  <a href="https://sonarcloud.io/component_measures?metric=vulnerabilities&selected=KudoAI_ai-personas%3Anode.js&id=KudoAI_ai-personas">
14
- <img height=31 src="https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fsonarcloud.io%2Fapi%2Fmeasures%2Fcomponent%3Fcomponent%3DKudoAI_ai-personas%3Anode.js%26metricKeys%3Dvulnerabilities&query=%24.component.measures.0.value&style=for-the-badge&logo=sonar&logoColor=white&labelColor=464646&label=Vulnerabilities&color=gold"></a>
16
+ <img height=31 src="https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fsonarcloud.io%2Fapi%2Fmeasures%2Fcomponent%3Fcomponent%3DKudoAI_ai-personas%3Anode.js%26metricKeys%3Dvulnerabilities&query=%24.component.measures.0.value&style=for-the-badge&logo=sonar&logoColor=white&labelColor=464646&label=Vulnerabilities&color=ffef00"></a>
17
+
18
+ </div>
19
+
20
+ <hr>
15
21
 
16
- > ### _1,000+ AI personas for LLMs and agents._
22
+ > ### _1,200+ AI personas for LLMs and agents._
17
23
 
18
- It's just a [JSON file](https://cdn.jsdelivr.net/gh/KudoAI/ai-personas@node.js-v1.2.0/data/ai-personas.json), so you can use it in any environment.
24
+ It's just a [JSON file](https://cdn.jsdelivr.net/npm/@kudoai/ai-personas@1.3.0/dist/ai-personas.json), so you can use it in any environment.
19
25
 
20
- <a href="#"><img style="height:10px ; width:100%" src="https://cdn.jsdelivr.net/gh/adamlui/js-utils@7da7074/assets/images/separators/aqua-gradient.png"></a>
26
+ <img src="https://cdn.jsdelivr.net/gh/KudoAI/ai-personas@node.js-v1.4.0/assets/images/screenshots/dataset-preview.png">
27
+
28
+ <a href="#"><img style="height:10px ; width:100%" src="https://cdn.jsdelivr.net/gh/adamlui/js-utils@6b0d399/assets/images/separators/aqua-gradient.png"></a>
21
29
 
22
30
  ## ⚡ Installation
23
31
 
32
+ #### <a href="#-nodejs"><img height=14 width="auto" src="https://cdn.jsdelivr.net/gh//adamlui/js-utils@dbdea4b/assets/images/icons/runtimes/node.js/icon25x28.png"></a> Node.js:
33
+
24
34
  From your project root:
25
35
 
26
36
  ```bash
27
37
  npm install @kudoai/ai-personas
28
38
  ```
29
39
 
40
+ #### [<img height="13" src="https://cdn.jsdelivr.net/gh/adamlui/userscripts@2793398/assets/images/icons/userscript-managers/tampermonkey/icon28.png" title="Tampermonkey">][greasemonkey-install][<img height="15" src="https://cdn.jsdelivr.net/gh/adamlui/userscripts@2793398/assets/images/icons/userscript-managers/violentmonkey/icon25.png" title="Violentmonkey">][greasemonkey-install][<img height="13" src="https://cdn.jsdelivr.net/gh/adamlui/userscripts@2793398/assets/images/icons/userscript-managers/scriptcat/icon32.png" title="ScriptCat">][greasemonkey-install][<img height="13" src="https://cdn.jsdelivr.net/gh/adamlui/userscripts@2793398/assets/images/icons/userscript-managers/orangemonkey/icon16.png" title="OrangeMonkey">][greasemonkey-install][<img height="14" src="https://cdn.jsdelivr.net/gh/adamlui/userscripts@2793398/assets/images/icons/userscript-managers/stay/icon32.png" title="Stay">][greasemonkey-install][<img height="13" src="https://cdn.jsdelivr.net/gh/adamlui/userscripts@2793398/assets/images/icons/userscript-managers/userscripts/icon32.png" title="Userscripts">][greasemonkey-install] Greasemonkey:
41
+
42
+ [greasemonkey-install]: #-greasemonkey
43
+
44
+ ```js
45
+ // ==UserScript==
46
+ ...
47
+ // @resource ai-personas https://cdn.jsdelivr.net/npm/@kudoai/ai-personas@1/dist/ai-personas.min.json
48
+ // @grant GM_getResourceText
49
+ ...
50
+ // ==/UserScript==
51
+ ```
52
+
30
53
  <hr>
31
54
 
32
55
  ## 🔌 Usage
33
56
 
34
- #### <img height=13 width="auto" src="https://cdn.jsdelivr.net/gh/KudoAI/ai-personas@7a49125/assets/images/icons/module-systems/esm/icon32.png"> ES Modules (ESM):
57
+ #### <a href="#-es-modules-esm"><img height=13 width="auto" src="https://cdn.jsdelivr.net/gh/adamlui/js-utils@dbdea4b/assets/images/icons/module-systems/esm/icon32.png"></a> ES Modules (ESM):
35
58
 
36
59
  ```js
37
60
  import personas from '@kudoai/ai-personas'
@@ -40,7 +63,7 @@ console.log(personas['Linux Terminal'].prompt)
40
63
  // => I want you to act as a linux terminal. I will type commands and you will...
41
64
  ```
42
65
 
43
- #### <img height=13 width="auto" src="https://cdn.jsdelivr.net/gh/KudoAI/ai-personas@7a49125/assets/images/icons/module-systems/cjs/icon32.png"> CommonJS (CJS):
66
+ #### <a href="#-commonjs-cjs"><img height=13 width="auto" src="https://cdn.jsdelivr.net/gh/adamlui/js-utils@dbdea4b/assets/images/icons/module-systems/cjs/icon32.png"></a> CommonJS (CJS):
44
67
 
45
68
  ```js
46
69
  const personas = require('@kudoai/ai-personas')
@@ -49,6 +72,34 @@ console.log(personas['Linux Terminal'].prompt)
49
72
  // => I want you to act as a linux terminal. I will type commands and you will...
50
73
  ```
51
74
 
75
+ #### [<img height=14 src="https://cdn.jsdelivr.net/gh/adamlui/ai-web-extensions@c226de5/assets/images/icons/browsers/chrome/icon16.png" title="Chrome">][web-usage][<img height=13.5 src="https://cdn.jsdelivr.net/gh/adamlui/ai-web-extensions@c226de5/assets/images/icons/browsers/edge/icon16.png" title="Edge">][web-usage][<img height=14 src="https://cdn.jsdelivr.net/gh/adamlui/ai-web-extensions@c226de5/assets/images/icons/browsers/firefox/icon16.png" title="Firefox">][web-usage][<img height=14 src="https://cdn.jsdelivr.net/gh/adamlui/ai-web-extensions@c226de5/assets/images/icons/browsers/safari/icon16.png" title="Safari">][web-usage][<img height=13 src="https://cdn.jsdelivr.net/gh/adamlui/ai-web-extensions@c226de5/assets/images/icons/browsers/qq/3d/icon-32x33.png" title="QQ Browser">][web-usage] Web:
76
+
77
+ [web-usage]: #-web
78
+
79
+ ```html
80
+ <script type="module">
81
+ const personas = await (await fetch(
82
+ 'https://cdn.jsdelivr.net/npm/@kudoai/ai-personas@1/dist/ai-personas.min.json'
83
+ )).json()
84
+
85
+ console.log(personas['Linux Terminal'].prompt)
86
+ // => I want you to act as a linux terminal. I will type commands and you will...
87
+ </script>
88
+ ```
89
+
90
+ #### [<img height="13" src="https://cdn.jsdelivr.net/gh/adamlui/userscripts@2793398/assets/images/icons/userscript-managers/tampermonkey/icon28.png" title="Tampermonkey">][greasemonkey-usage][<img height="15" src="https://cdn.jsdelivr.net/gh/adamlui/userscripts@2793398/assets/images/icons/userscript-managers/violentmonkey/icon25.png" title="Violentmonkey">][greasemonkey-usage][<img height="13" src="https://cdn.jsdelivr.net/gh/adamlui/userscripts@2793398/assets/images/icons/userscript-managers/scriptcat/icon32.png" title="ScriptCat">][greasemonkey-usage][<img height="13" src="https://cdn.jsdelivr.net/gh/adamlui/userscripts@2793398/assets/images/icons/userscript-managers/orangemonkey/icon16.png" title="OrangeMonkey">][greasemonkey-usage][<img height="14" src="https://cdn.jsdelivr.net/gh/adamlui/userscripts@2793398/assets/images/icons/userscript-managers/stay/icon32.png" title="Stay">][greasemonkey-usage][<img height="13" src="https://cdn.jsdelivr.net/gh/adamlui/userscripts@2793398/assets/images/icons/userscript-managers/userscripts/icon32.png" title="Userscripts">][greasemonkey-usage] Greasemonkey:
91
+
92
+ [greasemonkey-usage]: #-greasemonkey-1
93
+
94
+ ```js
95
+ const personas = JSON.parse(GM_getResourceText('ai-personas'))
96
+
97
+ console.log(personas['Linux Terminal'].prompt)
98
+ // => I want you to act as a linux terminal. I will type commands and you will...
99
+ ```
100
+
101
+ <br><a href="https://github.com/sponsors/KudoAI"><img src="https://cdn.jsdelivr.net/gh/KudoAI/ai-personas@f83f75a/assets/images/banners/sponsor/$10/banner1660x260.png"></a>
102
+
52
103
  <hr>
53
104
 
54
105
  ## 💻 Examples
@@ -63,7 +114,7 @@ function findPersonas(keyword) {
63
114
  }
64
115
 
65
116
  console.log(findPersonas('coach'))
66
- // => ['Interview Preparation Coach', 'Life Coach', ...]
117
+ // => [ 'Interview Preparation Coach', 'Life Coach', ... ]
67
118
  ```
68
119
 
69
120
  #
@@ -92,7 +143,7 @@ console.log(randomPersona())
92
143
  // => e.g. Reverse Prompt Engineer
93
144
 
94
145
  console.log(randomPersona(10))
95
- // => e.g. ['Internet Trend & Slang Intelligence', 'Tic-Tac-Toe Game', ...]
146
+ // => e.g. [ 'Internet Trend & Slang Intelligence', 'Tic-Tac-Toe Game', ... ]
96
147
  ```
97
148
 
98
149
  #
@@ -125,8 +176,11 @@ Your task is to:
125
176
  #### Fill variables in template prompts:
126
177
 
127
178
  ```js
179
+ function fillVarsInTemplate(prompt, vals = {}) {
180
+ return prompt.replace(/\$\{(.*?)\}/g, (_, key) => vals[key] ?? `\${${key}}`) }
181
+
128
182
  const prompt = personas['Node.js Automation Script Developer'].prompt,
129
- filledPrompt = prompt.replaceAll('${taskType}', 'web scraping')
183
+ filledPrompt = fillVarsInTemplate(prompt, { taskType: 'web scraping' })
130
184
 
131
185
  console.log(filledPrompt)
132
186
 
@@ -144,22 +198,22 @@ Your task is to:
144
198
 
145
199
  ```js
146
200
  const megaPrompt = `
147
- When I start w/ sh: follow prompt A. When I start w/ dax: follow prompt B.
201
+ When I start w/ sh: follow prompt A. When I start w/ win: follow prompt B.
148
202
 
149
203
  Prompt A: ${personas['Linux Terminal'].prompt}
150
204
 
151
- Prompt B: ${personas['DAX Terminal'].prompt}
205
+ Prompt B: ${personas['Windows Terminal'].prompt}
152
206
  `
153
207
 
154
208
  console.log(megaPrompt)
155
209
 
156
210
  /** =>
157
211
 
158
- When I start w/ sh: follow prompt A. When I start w/ dax: follow prompt B.
212
+ When I start w/ sh: follow prompt A. When I start w/ win: follow prompt B.
159
213
 
160
214
  Prompt A: I want you to act as a linux terminal...
161
215
 
162
- Prompt B: I want you to act as a DAX terminal...
216
+ Prompt B: I want you to act as a Windows Terminal...
163
217
  **/
164
218
  ```
165
219
 
@@ -195,14 +249,90 @@ const messages = [
195
249
 
196
250
  <hr>
197
251
 
198
- ## 📦 Related
252
+ ## 🧠 Contributors
199
253
 
200
- 🤖 [**ai-personas (Python)**](https://github.com/KudoAI/ai-personas/tree/main/python/#readme)
254
+ <a href="https://github.com/KudoAI/ai-personas/graphs/contributors">
255
+ <img height=45 width="auto" src="https://contrib.rocks/image?repo=KudoAI/ai-personas&anon=1" /></a>
256
+ <br><br>
201
257
 
202
- <a href="#"><img style="height:10px ; width:100%" src="https://cdn.jsdelivr.net/gh/adamlui/js-utils@7da7074/assets/images/separators/aqua-gradient.png"></a>
258
+ All contributions are very welcome!
203
259
 
204
- <picture><source media="(prefers-color-scheme: dark)" srcset="https://cdn.jsdelivr.net/gh/adamlui/js-utils@3ff8817/assets/images/icons/home/white/icon32x27.png"><img height=13 src="https://cdn.jsdelivr.net/gh/adamlui/js-utils@3ff8817/assets/images/icons/home/dark-gray/icon32x27.png"></picture> <a href=https://github.com/adamlui/js-utils/#readme>**More JavaScript utilities**</a> /
260
+ <hr>
261
+
262
+ ## 📜 Related
263
+
264
+ <!-- GOOGLEGPT -->
265
+
266
+ <details>
267
+ <summary>
268
+ <strong><a href="#"><picture><source media="(prefers-color-scheme: dark)" srcset="https://cdn.jsdelivr.net/gh/KudoAI/googlegpt@94d5b04/assets/images/icons/app/white/icon32.png"><img width=15 src="https://cdn.jsdelivr.net/gh/KudoAI/googlegpt@94d5b04/assets/images/icons/app/black/icon32.png"></picture></a> GoogleGPT</strong>&nbsp;&nbsp;<a href="https://github.com/awesome-scripts/awesome-userscripts#chatgpt"><img width=105 height="auto" src="https://cdn.jsdelivr.net/gh/KudoAI/googlegpt@94d5b04/assets/images/badges/awesome/badge.svg"></a>
269
+ </summary>
270
+ <br>
271
+ <a href="https://github.com/KudoAI/googlegpt/#readme">
272
+ <img width="555" height="auto" src="https://cdn.jsdelivr.net/gh/KudoAI/googlegpt@latest/assets/images/screenshots/desktop/javascript-arrays-query/darkmode.png">
273
+ </a>
274
+ </details>
275
+
276
+ > [<img height="13" src="https://cdn.jsdelivr.net/gh/adamlui/userscripts@2793398/assets/images/icons/userscript-managers/tampermonkey/icon28.png" title="Tampermonkey">][googlegpt-install][<img height="15" src="https://cdn.jsdelivr.net/gh/adamlui/userscripts@2793398/assets/images/icons/userscript-managers/violentmonkey/icon25.png" title="Violentmonkey">][googlegpt-install][<img height="13" src="https://cdn.jsdelivr.net/gh/adamlui/userscripts@2793398/assets/images/icons/userscript-managers/scriptcat/icon32.png" title="ScriptCat">][googlegpt-install][<img height="13" src="https://cdn.jsdelivr.net/gh/adamlui/userscripts@2793398/assets/images/icons/userscript-managers/orangemonkey/icon16.png" title="OrangeMonkey">][googlegpt-install][<img height="14" src="https://cdn.jsdelivr.net/gh/adamlui/userscripts@2793398/assets/images/icons/userscript-managers/stay/icon32.png" title="Stay">][googlegpt-install][<img height="13" src="https://cdn.jsdelivr.net/gh/adamlui/userscripts@2793398/assets/images/icons/userscript-managers/userscripts/icon32.png" title="Userscripts">][googlegpt-install]
277
+ > [Install][googlegpt-install] /
278
+ > [<picture><source media="(prefers-color-scheme: dark)" srcset="https://cdn.jsdelivr.net/gh/adamlui/userscripts@13443c3/assets/images/icons/paper-sheet/white.svg"><img height="13" src="https://cdn.jsdelivr.net/gh/adamlui/userscripts@13443c3/assets/images/icons/paper-sheet/black.svg"></picture>][googlegpt-readme]
279
+ > [Readme][googlegpt-readme] /
280
+ > [<picture><source media="(prefers-color-scheme: dark)" srcset="https://cdn.jsdelivr.net/gh/adamlui/userscripts@13443c3/assets/images/icons/speech-bubble-square/white.svg"><img height="12.5" src="https://cdn.jsdelivr.net/gh/adamlui/userscripts@13443c3/assets/images/icons/speech-bubble-square/black.svg"></picture>][googlegpt-discuss]
281
+ > [Discuss][googlegpt-discuss]
282
+
283
+ [googlegpt-install]: https://github.com/KudoAI/googlegpt/#-installation
284
+ [googlegpt-readme]: https://github.com/KudoAI/googlegpt/#readme
285
+ [googlegpt-discuss]: https://github.com/KudoAI/googlegpt/discussions
286
+
287
+ <!-- DUCKDUCKGPT -->
288
+
289
+ <details>
290
+ <summary>
291
+ <strong><a href="#"><img height=16 width="auto" src="https://cdn.jsdelivr.net/gh/KudoAI/duckduckgpt@2a48d2e/assets/images/icons/app/icon48.png"></a> DuckDuckGPT</strong>&nbsp;&nbsp;<a href="https://www.producthunt.com/posts/duckduckgpt?utm_source=badge-featured&utm_medium=badge&utm_souce=badge-duckduckgpt"><img width=105 height="auto" src="https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=379261&theme=light"></a>
292
+ </summary>
293
+ <br>
294
+ <a href="https://github.com/KudoAI/duckduckgpt/#readme">
295
+ <img width="555" height="auto" src="https://cdn.jsdelivr.net/gh/KudoAI/duckduckgpt@latest/assets/images/screenshots/desktop/how-to-becum-rich-query/lightmode.png">
296
+ </a>
297
+ </details>
298
+
299
+ > [<img height="13" src="https://cdn.jsdelivr.net/gh/adamlui/userscripts@2793398/assets/images/icons/userscript-managers/tampermonkey/icon28.png" title="Tampermonkey">][googlegpt-install][<img height="15" src="https://cdn.jsdelivr.net/gh/adamlui/userscripts@2793398/assets/images/icons/userscript-managers/violentmonkey/icon25.png" title="Violentmonkey">][ddgpt-install][<img height="13" src="https://cdn.jsdelivr.net/gh/adamlui/userscripts@2793398/assets/images/icons/userscript-managers/scriptcat/icon32.png" title="ScriptCat">][ddgpt-install][<img height="13" src="https://cdn.jsdelivr.net/gh/adamlui/userscripts@2793398/assets/images/icons/userscript-managers/orangemonkey/icon16.png" title="OrangeMonkey">][ddgpt-install][<img height="14" src="https://cdn.jsdelivr.net/gh/adamlui/userscripts@2793398/assets/images/icons/userscript-managers/stay/icon32.png" title="Stay">][ddgpt-install][<img height="13" src="https://cdn.jsdelivr.net/gh/adamlui/userscripts@2793398/assets/images/icons/userscript-managers/userscripts/icon32.png" title="Userscripts">][ddgpt-install]
300
+ > [Install][ddgpt-install] /
301
+ > [<picture><source media="(prefers-color-scheme: dark)" srcset="https://cdn.jsdelivr.net/gh/adamlui/userscripts@13443c3/assets/images/icons/paper-sheet/white.svg"><img height="13" src="https://cdn.jsdelivr.net/gh/adamlui/userscripts@13443c3/assets/images/icons/paper-sheet/black.svg"></picture>][ddgpt-readme]
302
+ > [Readme][ddgpt-readme] /
303
+ > [<picture><source media="(prefers-color-scheme: dark)" srcset="https://cdn.jsdelivr.net/gh/adamlui/userscripts@13443c3/assets/images/icons/speech-bubble-square/white.svg"><img height="12.5" src="https://cdn.jsdelivr.net/gh/adamlui/userscripts@13443c3/assets/images/icons/speech-bubble-square/black.svg"></picture>][ddgpt-discuss]
304
+ > [Discuss][ddgpt-discuss]
305
+
306
+ [ddgpt-install]: https://github.com/KudoAI/duckduckgpt/#-installation
307
+ [ddgpt-readme]: https://github.com/KudoAI/duckduckgpt/#readme
308
+ [ddgpt-discuss]: https://github.com/KudoAI/duckduckgpt/discussions
309
+
310
+ <!-- AI-PERSONAS (PYTHON) -->
311
+
312
+ #### 🤖 ai-personas (Python)
313
+
314
+ > [<img height=14 width="auto" src="https://cdn.jsdelivr.net/gh/adamlui/python-utils@b110c1e/assets/images/icons/python/icon32.png">][ap-py-install]
315
+ > [Install][ap-py-install] /
316
+ > [<picture><source media="(prefers-color-scheme: dark)" srcset="https://cdn.jsdelivr.net/gh/adamlui/userscripts@13443c3/assets/images/icons/paper-sheet/white.svg"><img height="13" src="https://cdn.jsdelivr.net/gh/adamlui/userscripts@13443c3/assets/images/icons/paper-sheet/black.svg"></picture>][ap-py-readme]
317
+ > [Readme][ap-py-readme] /
318
+ > 🔌 [API usage][ap-py-api-usage] /
319
+ > [<picture><source media="(prefers-color-scheme: dark)" srcset="https://cdn.jsdelivr.net/gh/adamlui/userscripts@13443c3/assets/images/icons/speech-bubble-square/white.svg"><img height="12.5" src="https://cdn.jsdelivr.net/gh/adamlui/userscripts@13443c3/assets/images/icons/speech-bubble-square/black.svg"></picture>][ap-py-discuss]
320
+ > [Discuss][ap-py-discuss]
321
+
322
+ [ap-py-install]: https://github.com/KudoAI/ai-personas/tree/main/python/#-installation
323
+ [ap-py-readme]: https://github.com/KudoAI/ai-personas/tree/main/python/#readme
324
+ [ap-py-api-usage]: https://github.com/KudoAI/ai-personas/tree/main/python/#-usage
325
+ [ap-py-discuss]: https://github.com/KudoAI/ai-personas/discussions
326
+
327
+ <!-- FOOTER -->
328
+
329
+ <a href="#"><img style="height:10px ; width:100%" src="https://cdn.jsdelivr.net/gh/adamlui/js-utils@6b0d399/assets/images/separators/aqua-gradient.png"></a>
330
+
331
+ [<picture><source media="(prefers-color-scheme: dark)" srcset="https://cdn.jsdelivr.net/gh/adamlui/js-utils@21bf981/assets/images/icons/home/white/icon32x27.png"><img height=13 src="https://cdn.jsdelivr.net/gh/adamlui/js-utils@21bf981/assets/images/icons/home/dark-gray/icon32x27.png"></picture>][js-utils]
332
+ [**More JavaScript utilities**][js-utils] /
205
333
  <a href="https://github.com/KudoAI/ai-personas/discussions">Discuss</a> /
206
334
  <a href="https://github.com/KudoAI/ai-personas/issues">Report bug</a> /
207
335
  <a href="mailto:security@tidelift.com">Report vulnerability</a> /
208
336
  <a href="#top">Back to top ↑</a>
337
+
338
+ [js-utils]: https://github.com/adamlui/js-utils/#readme