openmausbot 0.1.98 → 0.1.100
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/dist/assets/{ActivityPanel-H6D3SD39.js → ActivityPanel-CA9zfl3_.js} +1 -1
- package/dist/assets/BotSettingsDialog-3i_izROu.js +7 -0
- package/dist/assets/{CloudBackendPicker-iezpJFpF.js → CloudBackendPicker-BR42-xBg.js} +1 -1
- package/dist/assets/{ComputerPanel-DZPj-IWu.js → ComputerPanel-CvThnFmt.js} +1 -1
- package/dist/assets/{DesktopViewer-utONms1p.js → DesktopViewer-CqovWUic.js} +1 -1
- package/dist/assets/InspectorPanel-Cbjm86gt.js +5 -0
- package/dist/assets/{KeyboardShortcutsModal-gk9mvHj_.js → KeyboardShortcutsModal-X13pVrkh.js} +1 -1
- package/dist/assets/{LocalVmWorkspace-DLIvd2kC.js → LocalVmWorkspace-BGD3Tvd3.js} +1 -1
- package/dist/assets/{MacLocalControl-bJv8yiPB.js → MacLocalControl-ExdXHVUv.js} +1 -1
- package/dist/assets/NewBotDialog-ftDBMjWR.js +2 -0
- package/dist/assets/RemoteAgentSettingsPanel-BUHLV_vC.js +1 -0
- package/dist/assets/RoutinesPage-Buk5-r3o.js +1 -0
- package/dist/assets/{RoutinesSection-Dny9ra-c.js → RoutinesSection-NyReOXr8.js} +1 -1
- package/dist/assets/{SettingsModal-gC6XJJmt.js → SettingsModal-DkkhdxKM.js} +3 -3
- package/dist/assets/{TeamMapPage-B6fuu4r_.js → TeamMapPage-BIxeHoy3.js} +1 -1
- package/dist/assets/{TriggersPanel-j0qTP2CO.js → TriggersPanel-m5iqc43H.js} +1 -1
- package/dist/assets/{VisibilitySection-DT0FqPvu.js → VisibilitySection-y8Adk-c4.js} +1 -1
- package/dist/assets/WebhooksPanel-G_NWjHOP.js +3 -0
- package/dist/assets/{abnfDiagram-O67JEVCF-BsjcFX0-.js → abnfDiagram-O67JEVCF-D56ZgyPf.js} +1 -1
- package/dist/assets/{activity-BxOkayvD.js → activity-D_puBfZo.js} +1 -1
- package/dist/assets/{arc-CJNA94c6.js → arc-DzduGHbq.js} +1 -1
- package/dist/assets/{architectureDiagram-NJMV4G6O-dz2ud7lP.js → architectureDiagram-NJMV4G6O-C4NS6DQF.js} +1 -1
- package/dist/assets/{blockDiagram-BEXU5L5S-ChBEALoR.js → blockDiagram-BEXU5L5S-BNvsskiE.js} +1 -1
- package/dist/assets/{brain-CFZ7PEXc.js → brain-oq48IgWl.js} +1 -1
- package/dist/assets/{c4Diagram-YGBWAQC7-KZNRKDQe.js → c4Diagram-YGBWAQC7-ch3B7xZy.js} +1 -1
- package/dist/assets/channel-CmFDMHrN.js +1 -0
- package/dist/assets/{chunk-2Q5K7J3B-BLLwmCET.js → chunk-2Q5K7J3B-D9dL9ZS7.js} +1 -1
- package/dist/assets/{chunk-3FUC2YCW-CQxyreBZ.js → chunk-3FUC2YCW-DmLUUuNr.js} +2 -2
- package/dist/assets/{chunk-5VM5RSS4-D6sFMW0u.js → chunk-5VM5RSS4-B90ODeo2.js} +1 -1
- package/dist/assets/{chunk-GTNCS2PH-BaZ1YgLF.js → chunk-GTNCS2PH-BtlGIG3W.js} +1 -1
- package/dist/assets/{chunk-GWA4HPMP-CcalphmC.js → chunk-GWA4HPMP-CurBwFFG.js} +1 -1
- package/dist/assets/{chunk-JWPE2WC7-CSk8R3ve.js → chunk-JWPE2WC7-DTjNNXcd.js} +1 -1
- package/dist/assets/{chunk-NETBCI7D-CTmLjA57.js → chunk-NETBCI7D-xS7hOqBJ.js} +1 -1
- package/dist/assets/{chunk-WEXAMYUT-CM9Z77Ne.js → chunk-WEXAMYUT-DJZBSyA9.js} +1 -1
- package/dist/assets/{chunk-XXDRQBXY-B1fxpMS2.js → chunk-XXDRQBXY-CbiNRzjt.js} +1 -1
- package/dist/assets/{classDiagram-v2-NBCMYWYE-DCCyoLpj.js → classDiagram-v2-NBCMYWYE-DyON9tUb.js} +1 -1
- package/dist/assets/core-CRkAXD3N.js +12 -0
- package/dist/assets/{cose-bilkent-JH36ORCC-KyImBKvE.js → cose-bilkent-JH36ORCC-C7UwNnp8.js} +1 -1
- package/dist/assets/cpp-DddhVWhK.js +1 -0
- package/dist/assets/{cynefin-OW5HDTMX-fsZc6MGa.js → cynefin-OW5HDTMX-Dv1GTekc.js} +1 -1
- package/dist/assets/{cynefinDiagram-VND7K2PF-CGmHsShB.js → cynefinDiagram-VND7K2PF-CKgpyZxo.js} +1 -1
- package/dist/assets/{dagre-6A5THRUB-Dah1h-CH.js → dagre-6A5THRUB-BY3cYc8R.js} +1 -1
- package/dist/assets/{diagram-22UHCM2B-BIu71OyV.js → diagram-22UHCM2B-D71jBFCO.js} +1 -1
- package/dist/assets/{diagram-3UASUU5V-gxhUB_Mu.js → diagram-3UASUU5V-Bc3i6JGD.js} +1 -1
- package/dist/assets/{diagram-ATOU4E4O-CBhusUBn.js → diagram-ATOU4E4O-BPDSHISG.js} +1 -1
- package/dist/assets/{diagram-CDSNMT55-BdPrc86x.js → diagram-CDSNMT55-xuCT1v32.js} +1 -1
- package/dist/assets/{diagram-MLGK6HIB-Clp110R_.js → diagram-MLGK6HIB-LEDTXDPg.js} +1 -1
- package/dist/assets/{diagram-MPIPVDR6-DJKfbugw.js → diagram-MPIPVDR6-B0kfscRD.js} +1 -1
- package/dist/assets/{ebnfDiagram-ZINNZB2B-DnsltoBu.js → ebnfDiagram-ZINNZB2B-B-Z0HLzJ.js} +1 -1
- package/dist/assets/{elk-276RUBZZ-jWdq6gqH.js → elk-276RUBZZ-Bzypn7lU.js} +1 -1
- package/dist/assets/engine-javascript-D5Xfc425.js +141 -0
- package/dist/assets/{erDiagram-OPXOYQCR-DArPVf8u.js → erDiagram-OPXOYQCR-vl1xKmbS.js} +1 -1
- package/dist/assets/{flowDiagram-KWPJA3E3-D2HZ-2f7.js → flowDiagram-KWPJA3E3-DQXCXm7z.js} +1 -1
- package/dist/assets/{ganttDiagram-FUAMR5RP--o0KIxEo.js → ganttDiagram-FUAMR5RP-B0wwnP2j.js} +1 -1
- package/dist/assets/{gitGraphDiagram-X574FWY7-CsoXr2D7.js → gitGraphDiagram-X574FWY7-HfEVZRuR.js} +1 -1
- package/dist/assets/{image-plus-BbVjGHin.js → image-plus-D9o3v9bi.js} +1 -1
- package/dist/assets/{index-C3NqfdVU.js → index-CyM91z0J.js} +205 -205
- package/dist/assets/{index-BrPW5HDO.css → index-DbN_Hfjs.css} +1 -1
- package/dist/assets/{infoDiagram-VRGFBTTK-g-6lNp7r.js → infoDiagram-VRGFBTTK-BcCklxlu.js} +1 -1
- package/dist/assets/{ishikawaDiagram-OU5B5YK6-B1d6qVTV.js → ishikawaDiagram-OU5B5YK6-Bw7Fp8yZ.js} +1 -1
- package/dist/assets/{journeyDiagram-ZHPQQLJL-BTPuiU6T.js → journeyDiagram-ZHPQQLJL-BqFaTPiB.js} +1 -1
- package/dist/assets/{kanban-definition-PNTS6WVX-bDDuRJvP.js → kanban-definition-PNTS6WVX-BdGyimUh.js} +1 -1
- package/dist/assets/{linear-BVVKbEMy.js → linear-DezKjgv7.js} +1 -1
- package/dist/assets/{mermaid.core-JJdoKyKB.js → mermaid.core-97L7xtx0.js} +5 -5
- package/dist/assets/{mindmap-definition-NLK3R4M7-B4aE3T0q.js → mindmap-definition-NLK3R4M7-DP6qz87C.js} +1 -1
- package/dist/assets/{page-visible-BBo_Zm8g.js → page-visible-BehtKJDm.js} +1 -1
- package/dist/assets/{pegDiagram-GJSIUBJH-DFKQWpR7.js → pegDiagram-GJSIUBJH-CsYSloVz.js} +1 -1
- package/dist/assets/{pieDiagram-5QR66LMP-Iv7OKVJi.js → pieDiagram-5QR66LMP-CFI2Dcix.js} +1 -1
- package/dist/assets/{quadrantDiagram-O4NWA36T-U2YnfwBk.js → quadrantDiagram-O4NWA36T-DqTdAE5z.js} +1 -1
- package/dist/assets/{railroadDiagram-XR7U4H2S-CuPy6RqM.js → railroadDiagram-XR7U4H2S-t_rszRIF.js} +1 -1
- package/dist/assets/{remote-desktop-panel-BNEj7tUx.js → remote-desktop-panel-WTaz_HI9.js} +1 -1
- package/dist/assets/{requirementDiagram-PLB6GJNP-bMI5AK7T.js → requirementDiagram-PLB6GJNP-1MU-l7p8.js} +1 -1
- package/dist/assets/ruby-Ct1eTYOr.js +1 -0
- package/dist/assets/{sankeyDiagram-IPEJSGJF-BKcFE2WQ.js → sankeyDiagram-IPEJSGJF-CtkrwAvo.js} +1 -1
- package/dist/assets/{sequenceDiagram-PO4LG4MO-Bn9q88kl.js → sequenceDiagram-PO4LG4MO-CJOwBubv.js} +1 -1
- package/dist/assets/{sizeCapture-INFHLROL-Cvmdq9HD.js → sizeCapture-INFHLROL-DhQVhKCc.js} +1 -1
- package/dist/assets/{stateDiagram-v2-GCMORJYK-JJQYw3eQ.js → stateDiagram-v2-GCMORJYK-CaQK9yA9.js} +1 -1
- package/dist/assets/{swimlanes-2SLR337P-BkSCBEwp.js → swimlanes-2SLR337P-Ct8cqf01.js} +1 -1
- package/dist/assets/swimlanesDiagram-TC7HE7FX-BBUcFKOA.js +8 -0
- package/dist/assets/{timeline-definition-EJHVYXUP-DsaM4GHr.js → timeline-definition-EJHVYXUP-qim2Km3q.js} +1 -1
- package/dist/assets/{usecaseDiagram-POWQR4AR-3FOwLq7B.js → usecaseDiagram-POWQR4AR-BIzcxmgX.js} +1 -1
- package/dist/assets/{user-DcZBnAuv.js → user-EQ8rI0f4.js} +1 -1
- package/dist/assets/{vennDiagram-UO4OBE2U-DyNjJsKt.js → vennDiagram-UO4OBE2U-BFEuz8Ba.js} +1 -1
- package/dist/assets/{wardleyDiagram-VNRHLVJA-Y4ZMcnBC.js → wardleyDiagram-VNRHLVJA-JRkAN01c.js} +1 -1
- package/dist/assets/{xychartDiagram-PMCCYNJV-BXZpg955.js → xychartDiagram-PMCCYNJV-WBsvmu0R.js} +1 -1
- package/dist/index.html +2 -2
- package/dist-server/drivers/agents-proxy.js +10 -9
- package/dist-server/index.js +1483 -813
- package/dist-server/openmausbot.js +248 -152
- package/dist-server/pair-cli.js +248 -152
- package/dist-server/server/activity.js +2 -0
- package/dist-server/server/checkpoints.js +55 -39
- package/dist-server/server/direct-apply.js +20 -0
- package/dist-server/server/drivers/agents-call.js +1 -1
- package/dist-server/server/drivers/agents-catalog.js +11 -8
- package/dist-server/server/drivers/codex.js +147 -24
- package/dist-server/server/drivers/device-auth.js +5 -4
- package/dist-server/server/drivers/openai-chat.js +5 -4
- package/dist-server/server/harness/registry.js +63 -45
- package/dist-server/server/index.js +203 -23
- package/dist-server/server/mcp-oauth.js +125 -47
- package/dist-server/server/mcp-probe.js +18 -10
- package/dist-server/server/message-file.js +95 -3
- package/dist-server/server/model-requests.js +55 -4
- package/dist-server/server/profile-requests.js +80 -4
- package/dist-server/server/request-auth.js +1 -0
- package/dist-server/server/routes/undo.js +17 -0
- package/dist-server/server/routine-requests.js +210 -6
- package/dist-server/server/setup-mode.js +1 -1
- package/dist-server/server/skill-learn.js +2 -2
- package/dist-server/server/skills.js +30 -0
- package/dist-server/server/system-prompt.js +1 -1
- package/dist-server/server/turn-continuation.js +13 -18
- package/dist-server/server/workspace-backup.js +6 -1
- package/dist-server/workspace-backup.worker.js +1 -1
- package/package.json +1 -1
- package/skills/create-verification-skill/SKILL.md +9 -8
- package/skills/create-verification-skill/manifest.json +1 -1
- package/dist/assets/BotSettingsDialog-Dqz_AiBZ.js +0 -7
- package/dist/assets/InspectorPanel-OVaBVrzC.js +0 -5
- package/dist/assets/NewBotDialog-1qGOAdUM.js +0 -2
- package/dist/assets/RemoteAgentSettingsPanel-DqKr0HkO.js +0 -1
- package/dist/assets/RoutinesPage-BM2D4qGi.js +0 -1
- package/dist/assets/WebhooksPanel--YQyCjKO.js +0 -3
- package/dist/assets/abap-BdImnpbu.js +0 -1
- package/dist/assets/actionscript-3-B3316cI-.js +0 -1
- package/dist/assets/ada-bCR0ucgS.js +0 -1
- package/dist/assets/ahk-CsyLZFj1.js +0 -1
- package/dist/assets/ahk2-8Zs4aa1G.js +0 -1
- package/dist/assets/andromeeda-C4gqWexZ.js +0 -1
- package/dist/assets/angular-html-DA-rfuFy.js +0 -1
- package/dist/assets/angular-ts-BrjP3tb8.js +0 -1
- package/dist/assets/apache-Pmp26Uib.js +0 -1
- package/dist/assets/apex-DhZFqWV2.js +0 -1
- package/dist/assets/apl-CORt7UWP.js +0 -1
- package/dist/assets/applescript-Co6uUVPk.js +0 -1
- package/dist/assets/ara-BRHolxvo.js +0 -1
- package/dist/assets/asciidoc-CSVQ5wI8.js +0 -1
- package/dist/assets/asm-D_Q5rh1f.js +0 -1
- package/dist/assets/astro-HNnZUWAn.js +0 -1
- package/dist/assets/aurora-x-D-2ljcwZ.js +0 -1
- package/dist/assets/awk-DMzUqQB5.js +0 -1
- package/dist/assets/ayu-dark-DYE7WIF3.js +0 -1
- package/dist/assets/ayu-light-BA47KaF1.js +0 -1
- package/dist/assets/ayu-mirage-32ctXXKs.js +0 -1
- package/dist/assets/ballerina-BFfxhgS-.js +0 -1
- package/dist/assets/bat-CickPsom.js +0 -1
- package/dist/assets/beancount-k_qm7-4y.js +0 -1
- package/dist/assets/berry-uYugtg8r.js +0 -1
- package/dist/assets/bibtex-CHM0blh-.js +0 -1
- package/dist/assets/bicep-Bmn6On1c.js +0 -1
- package/dist/assets/bird2-Bx8U0n9b.js +0 -1
- package/dist/assets/blade-2xfisSek.js +0 -1
- package/dist/assets/bsl-DlhNcFeZ.js +0 -1
- package/dist/assets/c3-Dp5svz6Z.js +0 -1
- package/dist/assets/cadence-Bv_4Rxtq.js +0 -1
- package/dist/assets/cairo-KRGpt6FW.js +0 -1
- package/dist/assets/catppuccin-frappe-CZL1YF0i.js +0 -1
- package/dist/assets/catppuccin-latte-DH-8KZSZ.js +0 -1
- package/dist/assets/catppuccin-macchiato-B7yYVSCf.js +0 -1
- package/dist/assets/catppuccin-mocha-Ct7hS0mc.js +0 -1
- package/dist/assets/channel-WhFyujhZ.js +0 -1
- package/dist/assets/chapel-DTp_pixX.js +0 -1
- package/dist/assets/clarity-Dn5IMItf.js +0 -1
- package/dist/assets/clojure-P80f7IUj.js +0 -1
- package/dist/assets/cmake-D1j8_8rp.js +0 -1
- package/dist/assets/cobol-nBiQ_Alo.js +0 -1
- package/dist/assets/codeowners-Bp6g37R7.js +0 -1
- package/dist/assets/codeql-DsOJ9woJ.js +0 -1
- package/dist/assets/coffee-Ch7k5sss.js +0 -1
- package/dist/assets/common-lisp-Cg-RD9OK.js +0 -1
- package/dist/assets/coq-C7JzOVbR.js +0 -1
- package/dist/assets/cpp-BMRokrvK.js +0 -1
- package/dist/assets/crystal-DGywbUpC.js +0 -1
- package/dist/assets/csv-fuZLfV_i.js +0 -1
- package/dist/assets/cue-D82EKSYY.js +0 -1
- package/dist/assets/cypher-COkxafJQ.js +0 -1
- package/dist/assets/d-85-TOEBH.js +0 -1
- package/dist/assets/dark-plus-C3mMm8J8.js +0 -1
- package/dist/assets/dax-CEL-wOlO.js +0 -1
- package/dist/assets/desktop-BmXAJ9_W.js +0 -1
- package/dist/assets/dotenv-Da5cRb03.js +0 -1
- package/dist/assets/dracula-BzJJZx-M.js +0 -1
- package/dist/assets/dracula-soft-BXkSAIEj.js +0 -1
- package/dist/assets/dream-maker-BtqSS_iP.js +0 -1
- package/dist/assets/edge-FbVlp4U3.js +0 -1
- package/dist/assets/elixir-CkH2-t6x.js +0 -1
- package/dist/assets/elm-DbKCFpqz.js +0 -1
- package/dist/assets/emacs-lisp-C_m_b--Z.js +0 -1
- package/dist/assets/erb-DXfck5VN.js +0 -1
- package/dist/assets/erlang-DsQrWhSR.js +0 -1
- package/dist/assets/everforest-dark-BgDCqdQA.js +0 -1
- package/dist/assets/everforest-light-C8M2exoo.js +0 -1
- package/dist/assets/fennel-BYunw83y.js +0 -1
- package/dist/assets/fluent-C4IJs8-o.js +0 -1
- package/dist/assets/fortran-fixed-form-CkoXwp7k.js +0 -1
- package/dist/assets/fortran-free-form-BxgE0vQu.js +0 -1
- package/dist/assets/fsharp-CXgrBDvD.js +0 -1
- package/dist/assets/gdresource-TyuKm33G.js +0 -1
- package/dist/assets/gdscript-DqcFQ5yU.js +0 -1
- package/dist/assets/gdshader-DkwncUOv.js +0 -1
- package/dist/assets/genie-D0YGMca9.js +0 -1
- package/dist/assets/gherkin-DyxjwDmM.js +0 -1
- package/dist/assets/git-commit-F4YmCXRG.js +0 -1
- package/dist/assets/git-rebase-r7XF79zn.js +0 -1
- package/dist/assets/github-dark-DHJKELXO.js +0 -1
- package/dist/assets/github-dark-dimmed-DH5Ifo-i.js +0 -1
- package/dist/assets/github-dark-high-contrast-E3gJ1_iC.js +0 -1
- package/dist/assets/github-light-DAi9KRSo.js +0 -1
- package/dist/assets/github-light-high-contrast-BfjtVDDH.js +0 -1
- package/dist/assets/gleam-BspZqrRM.js +0 -1
- package/dist/assets/glimmer-js-ByusRIyA.js +0 -1
- package/dist/assets/glimmer-ts-BfAWNZQY.js +0 -1
- package/dist/assets/glsl-DplSGwfg.js +0 -1
- package/dist/assets/gn-n2N0HUVH.js +0 -1
- package/dist/assets/gnuplot-DdkO51Og.js +0 -1
- package/dist/assets/groovy-gcz8RCvz.js +0 -1
- package/dist/assets/gruvbox-dark-hard-CFHQjOhq.js +0 -1
- package/dist/assets/gruvbox-dark-medium-GsRaNv29.js +0 -1
- package/dist/assets/gruvbox-dark-soft-CVdnzihN.js +0 -1
- package/dist/assets/gruvbox-light-hard-CH1njM8p.js +0 -1
- package/dist/assets/gruvbox-light-medium-DRw_LuNl.js +0 -1
- package/dist/assets/gruvbox-light-soft-hJgmCMqR.js +0 -1
- package/dist/assets/hack-BWmVpMyf.js +0 -1
- package/dist/assets/haml-D5jkg6IW.js +0 -1
- package/dist/assets/handlebars-BpdQsYii.js +0 -1
- package/dist/assets/haskell-Df6bDoY_.js +0 -1
- package/dist/assets/haxe-CfZj7gIn.js +0 -1
- package/dist/assets/hcl-BWvSN4gD.js +0 -1
- package/dist/assets/hjson-D5-asLiD.js +0 -1
- package/dist/assets/hlsl-D3lLCCz7.js +0 -1
- package/dist/assets/horizon-BUw7H-hv.js +0 -1
- package/dist/assets/horizon-bright-CUuTKBJd.js +0 -1
- package/dist/assets/houston-DnULxvSX.js +0 -1
- package/dist/assets/html-derivative-DlHx6ybY.js +0 -1
- package/dist/assets/http-jrhK8wxY.js +0 -1
- package/dist/assets/hurl-irOxFIW8.js +0 -1
- package/dist/assets/hxml-2-FPmUDs.js +0 -1
- package/dist/assets/hy-DFXneXwc.js +0 -1
- package/dist/assets/imba-DGztddWO.js +0 -1
- package/dist/assets/index-CJTp9JEp.js +0 -153
- package/dist/assets/ini-BEwlwnbL.js +0 -1
- package/dist/assets/jinja-f2NsQr07.js +0 -1
- package/dist/assets/jison-wvAkD_A8.js +0 -1
- package/dist/assets/jsonl-DcaNXYhu.js +0 -1
- package/dist/assets/jsonnet-DFQXde-d.js +0 -1
- package/dist/assets/jssm-C2t-YnRu.js +0 -1
- package/dist/assets/julia-5Bft2YPA.js +0 -1
- package/dist/assets/just-Cwhn7H3k.js +0 -1
- package/dist/assets/kanagawa-dragon-BuwD2xS4.js +0 -1
- package/dist/assets/kanagawa-lotus-C3DzagqV.js +0 -1
- package/dist/assets/kanagawa-wave-DFGoQZhC.js +0 -1
- package/dist/assets/kdl-DV7GczEv.js +0 -1
- package/dist/assets/kusto-wEQ09or8.js +0 -1
- package/dist/assets/laserwave-DUszq2jm.js +0 -1
- package/dist/assets/latex-D5pSuvFb.js +0 -1
- package/dist/assets/lean-BZvkOJ9d.js +0 -1
- package/dist/assets/light-plus-B7mTdjB0.js +0 -1
- package/dist/assets/liquid-C0sCDyMI.js +0 -1
- package/dist/assets/llvm-BZoOZj88.js +0 -1
- package/dist/assets/log-2UxHyX5q.js +0 -1
- package/dist/assets/logo-BtOb2qkB.js +0 -1
- package/dist/assets/luau-BnpPk5vE.js +0 -1
- package/dist/assets/marko-DjSrsDqO.js +0 -1
- package/dist/assets/material-theme-D5KoaKCx.js +0 -1
- package/dist/assets/material-theme-darker-BfHTSMKl.js +0 -1
- package/dist/assets/material-theme-lighter-B0m2ddpp.js +0 -1
- package/dist/assets/material-theme-ocean-CyktbL80.js +0 -1
- package/dist/assets/material-theme-palenight-Csfq5Kiy.js +0 -1
- package/dist/assets/matlab-D7o27uSR.js +0 -1
- package/dist/assets/mdc-D1_yUvq7.js +0 -1
- package/dist/assets/mermaid-CQcHuHx7.js +0 -1
- package/dist/assets/min-dark-CafNBF8u.js +0 -1
- package/dist/assets/min-light-CTRr51gU.js +0 -1
- package/dist/assets/mipsasm-CKIfxQSi.js +0 -1
- package/dist/assets/mojo-DJz3ZmWd.js +0 -1
- package/dist/assets/monokai-BRVnQi9A.js +0 -1
- package/dist/assets/moonbit-CHtswR0a.js +0 -1
- package/dist/assets/move-el3G9tDJ.js +0 -1
- package/dist/assets/narrat-DRg8JJMk.js +0 -1
- package/dist/assets/nextflow-C-mBbutL.js +0 -1
- package/dist/assets/nextflow-groovy-vE_lwT2v.js +0 -1
- package/dist/assets/nginx-BpAMiNFr.js +0 -1
- package/dist/assets/night-owl-C39BiMTA.js +0 -1
- package/dist/assets/night-owl-light-CMTm3GFP.js +0 -1
- package/dist/assets/nim-BIad80T-.js +0 -1
- package/dist/assets/nix-CwoSXNpI.js +0 -1
- package/dist/assets/nord-Ddv68eIx.js +0 -1
- package/dist/assets/nsis-BlV79W_Q.js +0 -1
- package/dist/assets/nushell-D3jzshHO.js +0 -1
- package/dist/assets/objective-c-DXmwc3jG.js +0 -1
- package/dist/assets/objective-cpp-CLxacb5B.js +0 -1
- package/dist/assets/ocaml-C0hk2d4L.js +0 -1
- package/dist/assets/odin-BBf5iR-q.js +0 -1
- package/dist/assets/one-dark-pro-DVMEJ2y_.js +0 -1
- package/dist/assets/one-light-C3Wv6jpd.js +0 -1
- package/dist/assets/openscad-C4EeE6gA.js +0 -1
- package/dist/assets/org-DM6o9KBp.js +0 -1
- package/dist/assets/pascal-D93ZcfNL.js +0 -1
- package/dist/assets/perl-B9cMNwum.js +0 -1
- package/dist/assets/pkl-u5AG7uiY.js +0 -1
- package/dist/assets/plastic-3e1v2bzS.js +0 -1
- package/dist/assets/plsql-ChMvpjG-.js +0 -1
- package/dist/assets/po-BTJTHyun.js +0 -1
- package/dist/assets/poimandres-CS3Unz2-.js +0 -1
- package/dist/assets/polar-C0HS_06l.js +0 -1
- package/dist/assets/postcss-CXtECtnM.js +0 -1
- package/dist/assets/powerquery-CEu0bR-o.js +0 -1
- package/dist/assets/prisma-Vru482bI.js +0 -1
- package/dist/assets/prolog-CbFg5uaA.js +0 -1
- package/dist/assets/pug-DKIMFp6K.js +0 -1
- package/dist/assets/puppet-BMWR74SV.js +0 -1
- package/dist/assets/purescript-CklMAg4u.js +0 -1
- package/dist/assets/qml-3beO22l8.js +0 -1
- package/dist/assets/qmldir-C8lEn-DE.js +0 -1
- package/dist/assets/qss-IeuSbFQv.js +0 -1
- package/dist/assets/racket-BqYA7rlc.js +0 -1
- package/dist/assets/raku-DXvB9xmW.js +0 -1
- package/dist/assets/razor-BjBPvh-w.js +0 -1
- package/dist/assets/rbs-CpoqiR4B.js +0 -1
- package/dist/assets/red-hvxz__6c.js +0 -1
- package/dist/assets/reg-C-SQnVFl.js +0 -1
- package/dist/assets/regexp-CDVJQ6XC.js +0 -1
- package/dist/assets/rel-C3B-1QV4.js +0 -1
- package/dist/assets/riscv-BM1_JUlF.js +0 -1
- package/dist/assets/ron-D8l8udqQ.js +0 -1
- package/dist/assets/rose-pine-5qJOZa0Y.js +0 -1
- package/dist/assets/rose-pine-dawn-zx0QlTCp.js +0 -1
- package/dist/assets/rose-pine-moon-C9pEdX9L.js +0 -1
- package/dist/assets/rosmsg-BJDFO7_C.js +0 -1
- package/dist/assets/rst-bs7f0vWN.js +0 -1
- package/dist/assets/ruby-C0TQ7zu5.js +0 -1
- package/dist/assets/sas-DEy46yEz.js +0 -1
- package/dist/assets/scala-CqE71os6.js +0 -1
- package/dist/assets/scheme-C98Dy4si.js +0 -1
- package/dist/assets/sdbl-DVxCFoDh.js +0 -1
- package/dist/assets/shaderlab-Dg9Lc6iA.js +0 -1
- package/dist/assets/shellsession-BADoaaVG.js +0 -1
- package/dist/assets/slack-dark-BthQWCQV.js +0 -1
- package/dist/assets/slack-ochin-DqwNpetd.js +0 -1
- package/dist/assets/smalltalk-BOQMe2GC.js +0 -1
- package/dist/assets/smithy-cds9vsN8.js +0 -1
- package/dist/assets/snazzy-light-Bw305WKR.js +0 -1
- package/dist/assets/solarized-dark-CpvCGNkr.js +0 -1
- package/dist/assets/solarized-light-Dlz6yCKv.js +0 -1
- package/dist/assets/solidity-DijEV5ha.js +0 -1
- package/dist/assets/soy-8wufbnw4.js +0 -1
- package/dist/assets/sparql-rVzFXLq3.js +0 -1
- package/dist/assets/splunk-BtCnVYZw.js +0 -1
- package/dist/assets/ssh-config-_ykCGR6B.js +0 -1
- package/dist/assets/stata-DI20mbqo.js +0 -1
- package/dist/assets/stylus-BEDo0Tqx.js +0 -1
- package/dist/assets/surrealql-Cjom0U5J.js +0 -1
- package/dist/assets/svelte-Cy7k_4gC.js +0 -1
- package/dist/assets/swimlanesDiagram-TC7HE7FX-CmTirbVT.js +0 -8
- package/dist/assets/synthwave-84-CbfX1IO0.js +0 -1
- package/dist/assets/system-verilog-0hqHdDBg.js +0 -1
- package/dist/assets/systemd-4A_iFExJ.js +0 -1
- package/dist/assets/talonscript-CkByrt1z.js +0 -1
- package/dist/assets/tasl-QIJgUcNo.js +0 -1
- package/dist/assets/tcl-dwOrl1Do.js +0 -1
- package/dist/assets/templ-DhtptRzy.js +0 -1
- package/dist/assets/terraform-BETggiCN.js +0 -1
- package/dist/assets/tex-D96PA37w.js +0 -1
- package/dist/assets/tokyo-night-hegEt444.js +0 -1
- package/dist/assets/ts-tags-D351s5mN.js +0 -1
- package/dist/assets/tsv-B_m7g4N7.js +0 -1
- package/dist/assets/turtle-BsS91CYL.js +0 -1
- package/dist/assets/twig-27uCiNez.js +0 -1
- package/dist/assets/typespec-CAFt9gP4.js +0 -1
- package/dist/assets/typst-BUadGCkm.js +0 -1
- package/dist/assets/v-BGw2Nkan.js +0 -1
- package/dist/assets/vala-CsfeWuGM.js +0 -1
- package/dist/assets/vb-Cu-pLBUe.js +0 -1
- package/dist/assets/verilog-nZwndyjY.js +0 -1
- package/dist/assets/vesper-DRje8inN.js +0 -1
- package/dist/assets/vhdl-CeAyd5Ju.js +0 -1
- package/dist/assets/viml-CJc9bBzg.js +0 -1
- package/dist/assets/vitesse-black-Bkuqu6BP.js +0 -1
- package/dist/assets/vitesse-dark-D0r3Knsf.js +0 -1
- package/dist/assets/vitesse-light-CVO1_9PV.js +0 -1
- package/dist/assets/vue-BqiEGhQt.js +0 -1
- package/dist/assets/vue-html-AaS7Mt5G.js +0 -1
- package/dist/assets/vue-vine-BoDAl6tE.js +0 -1
- package/dist/assets/vyper-CDx5xZoG.js +0 -1
- package/dist/assets/wasm-CG6Dc4jp.js +0 -1
- package/dist/assets/wenyan-BV7otONQ.js +0 -1
- package/dist/assets/wgsl-Dx-B1_4e.js +0 -1
- package/dist/assets/wikitext-BhOHFoWU.js +0 -1
- package/dist/assets/wit-5i3qLPDT.js +0 -1
- package/dist/assets/wolfram-lXgVvXCa.js +0 -1
- package/dist/assets/xsl-CtQFsRM5.js +0 -1
- package/dist/assets/zenscript-DVFEvuxE.js +0 -1
- package/dist/assets/zig-VOosw3JB.js +0 -1
- /package/dist/assets/{shellscript-Yzrsuije.js → bash-Yzrsuije.js} +0 -0
- /package/dist/assets/{docker-BcOcwvcX.js → dockerfile-BcOcwvcX.js} +0 -0
- /package/dist/assets/{make-CHLpvVh8.js → makefile-CHLpvVh8.js} +0 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{u as O,r as m,j as e,d as se,
|
|
1
|
+
import{u as O,r as m,j as e,d as se,p as xe,aQ as be,g as ie,bK as je,B as pe,T as Be,bL as Ee,c as K,bM as Te,bN as ge,bO as Ge,bP as Je,bQ as Ke,bR as Fe,$ as Pe,a0 as He,bS as $,bT as Y,bU as me,bV as re,bW as fe,bX as Ie,aG as oe,X as De,ae as Oe,bY as We,t as u,V as ne,bZ as Ve,b_ as ze,b$ as Ue,v as Z,c0 as ve,c1 as $e,ax as Le,bm as Ze,bG as qe,bH as Ye,c2 as _e,P as we,be as Xe,aU as Ae,aV as Qe,c3 as ea,c4 as aa,a9 as na,aa as ia,aM as ra,c5 as la,c6 as ta,c7 as sa,b4 as oa,b5 as da,c8 as ca,aj as ma,aI as ya,c9 as ua,ca as ha,am as xa,al as pa,Y as ba,cb as ga}from"./index-CyM91z0J.js";import{u as P}from"./RoutinesPage-Buk5-r3o.js";import{I as fa}from"./image-plus-D9o3v9bi.js";import{C as va}from"./CloudBackendPicker-BR42-xBg.js";function Aa(a){const l="Use an HTTPS API base URL, or HTTP for a local router, without passwords, query parameters or fragments";let i;try{i=new URL(a.trim())}catch{throw new Error(l)}if(a.length>2048||i.username||i.password||i.search||i.hash)throw new Error(l);const n=i.hostname.toLowerCase(),r=/^(\d+)\.(\d+)\.(\d+)\.(\d+)$/.exec(n),y=n==="localhost"||n.endsWith(".localhost")||n.endsWith(".local")||n==="host.docker.internal"||n==="host.containers.internal"||n==="[::1]"||/^\[f[cd][0-9a-f]{2}:/.test(n)||r&&(Number(r[1])===127||Number(r[1])===10||Number(r[1])===192&&Number(r[2])===168||Number(r[1])===172&&Number(r[2])>=16&&Number(r[2])<=31);if(i.protocol!=="https:"&&!(i.protocol==="http:"&&y))throw new Error(l);if(r&&(Number(r[1])===0||Number(r[1])===169&&Number(r[2])===254))throw new Error(l);return i.pathname=i.pathname.replace(/\/+$/,"").replace(/\/images\/generations$/,""),i.toString().replace(/\/+$/,"")}const Ce={openai:{label:"OpenAI",keyLabel:"OpenAI image API key",credential:"openaiImageApiKey"},xai:{label:"Grok (xAI)",keyLabel:"Grok API key",credential:"xaiApiKey"},custom:{label:"Custom",keyLabel:"Custom image API key",credential:"customImageApiKey"}},ee="w-full min-w-0 rounded-lg border border-hairline/40 bg-inset px-3 py-2 text-[12.5px] text-ink placeholder:text-ink-secondary focus:outline-none disabled:opacity-50",Ca="flex items-center justify-center gap-1.5 rounded-lg bg-control px-3 py-2 text-[12.5px] text-ink hover:bg-raised-hover disabled:opacity-50";function ka({botLabel:a,disabled:l,generating:i,onGenerate:n,onSavingChange:r}){const{state:y,dispatch:h}=O(),o=y.config?.imageGen,s=o?.provider??"openai",[d,g]=m.useState(null),[f,p]=m.useState(null),[b,B]=m.useState(null),[x,v]=m.useState(""),[D,C]=m.useState(""),[k,R]=m.useState(!1),[T,c]=m.useState(null),t=d??s,N=f??o?.customUrl??"",S=b??o?.customModel??"",A=Ce[t],L=l||i||k,z=t==="custom"?o?.customKeyConfigured===!0:t==="xai"?(o?.xaiConfigured??y.config?.xai?.configured)===!0:(o?.openaiConfigured??(s==="openai"&&o?.configured))===!0,I=t!==s||t==="custom"&&(N.trim()!==(o?.customUrl??"")||S.trim()!==(o?.customModel??""))||!!x.trim(),F=t===s&&o?.configured===!0;m.useEffect(()=>{v("")},[t]);const j=w=>{R(w),r(w)},H=async w=>{const G=await ie("/api/config",{method:"PUT",body:JSON.stringify(w)});h({type:"configStatus",config:G})},W=async w=>{const G=window.ogb?.setCredential?await window.ogb.setCredential(A.credential,w):await ie("/api/config",{method:"PUT",body:JSON.stringify(t==="xai"?{xai:{key:w}}:{imageGen:t==="custom"?{customApiKey:w}:{key:w}})});h({type:"configStatus",config:G}),v("")},X=async w=>{if(!L&&(g(w),v(""),p(null),B(null),c(null),w!=="custom")){j(!0);try{await H({imageGen:{provider:w}})}catch(G){c(G instanceof Error?G.message:String(G))}finally{g(null),j(!1)}}},M=async()=>{if(!(L||t==="custom"&&(!N.trim()||!S.trim()))&&!(t!=="custom"&&!x.trim())){j(!0),c(null);try{const w=t==="custom"?Aa(N.trim()):"",G=S.trim();if(t==="custom"&&(G.length>200||["\r",`
|
|
2
2
|
`,"\0"].some(Q=>G.includes(Q))))throw new Error("Use a model ID of at most 200 characters without control characters");x.trim()&&await W(x.trim()),t==="custom"&&(await H({imageGen:{provider:t,customUrl:w,customModel:G}}),g(null),p(null),B(null))}catch(w){c(w instanceof Error?w.message:String(w))}finally{j(!1)}}},E=async()=>{if(!L){j(!0),c(null);try{await W("")}catch(w){c(w instanceof Error?w.message:String(w))}finally{j(!1)}}},q=e.jsxs("div",{className:"space-y-2.5",children:[t==="custom"&&e.jsxs(e.Fragment,{children:[e.jsxs("label",{className:"block text-[11.5px] text-ink-secondary",children:["Base URL",e.jsx("input",{type:"url",value:N,disabled:L,onChange:w=>p(w.target.value),placeholder:"http://127.0.0.1:4000/v1",autoComplete:"off",className:`${ee} mt-1`})]}),e.jsxs("label",{className:"block text-[11.5px] text-ink-secondary",children:["Image model",e.jsx("input",{value:S,disabled:L,onChange:w=>B(w.target.value),placeholder:"Model ID from your image provider",autoComplete:"off",className:`${ee} mt-1`})]}),e.jsx("p",{className:"text-[11px] leading-relaxed text-ink-secondary",children:"OpenAI-compatible Images API. localhost refers to the OpenMausBot server, including when you open this page remotely."})]}),e.jsxs("label",{className:"block text-[11.5px] text-ink-secondary",children:[A.keyLabel,t==="custom"?" (optional)":"",e.jsx("input",{type:"password",value:x,disabled:L,onChange:w=>v(w.target.value),onKeyDown:w=>{w.key==="Enter"&&(w.preventDefault(),M())},placeholder:z?"Saved key · paste to replace":t==="custom"?"Leave blank for a keyless connection":"Paste API key",autoComplete:"off",className:`${ee} mt-1`})]}),t==="xai"&&e.jsx("p",{className:"text-[11px] leading-relaxed text-ink-secondary",children:"Shares the Grok API key in Settings. Changing or removing it also affects other Grok features."}),t==="custom"&&z&&e.jsx("p",{className:"text-[11px] leading-relaxed text-ink-secondary",children:"The saved custom key will be used. Remove it for a keyless connection."}),e.jsxs("div",{className:"flex items-center justify-end gap-2",children:[z&&e.jsx("button",{type:"button",onClick:()=>{E()},disabled:L,className:"mr-auto rounded-md py-1.5 text-[11.5px] text-ink-secondary hover:text-danger disabled:opacity-50",children:"Remove saved key"}),e.jsxs("button",{type:"button",onClick:()=>{M()},disabled:L||(t==="custom"?!N.trim()||!S.trim()||!I&&F:!x.trim()),className:Ca,children:[k?e.jsx(se,{size:13,className:"animate-spin"}):e.jsx(xe,{size:13}),t==="custom"?"Save connection":"Save key"]})]})]});return e.jsxs("div",{className:"mt-5 border-t border-hairline/40 pt-4",children:[e.jsxs("div",{className:"flex items-center gap-2 text-[13px] font-medium text-ink",children:[e.jsx(be,{size:14,className:"text-accent"})," Generate with AI"]}),e.jsxs("label",{className:"mt-3 block text-[11.5px] text-ink-secondary",children:["Image provider",e.jsx("select",{value:t,onChange:w=>{X(w.target.value)},disabled:L||!y.config,className:`${ee} mt-1`,children:Object.entries(Ce).map(([w,G])=>e.jsx("option",{value:w,children:G.label},w))})]}),e.jsxs("p",{className:"mt-1.5 text-[11px] leading-relaxed text-ink-secondary",children:[t==="openai"?"GPT Image 2 · low-quality square draft. Billed to your OpenAI API account.":t==="xai"?"Grok Imagine · API billing is separate from your Grok subscription.":"Connect a local router or image provider."," ","This connection is shared by all bot avatars."]}),F?e.jsxs("details",{className:"mt-3 rounded-lg border border-hairline/40 px-3 py-2",children:[e.jsx("summary",{className:"cursor-pointer text-[11.5px] text-ink-secondary",children:"Connection settings"}),e.jsx("div",{className:"mt-3",children:q})]},t):e.jsx("div",{className:"mt-3",children:q}),e.jsx("textarea",{value:D,disabled:L,onChange:w=>C(w.target.value.slice(0,400)),maxLength:400,placeholder:`Optional direction, e.g. “a calm navigator inspired by ${a}”`,"aria-label":"Avatar generation direction",className:`${ee} mt-3 min-h-[72px] resize-none`}),e.jsxs("div",{className:"mt-2 flex items-center justify-between gap-3",children:[e.jsxs("span",{className:"text-[11px] tabular-nums text-ink-secondary",children:[D.length,"/400"]}),e.jsxs("button",{type:"button",onClick:()=>{!L&&F&&!I&&(c(null),n(D.trim()))},disabled:L||!F||I,className:"flex items-center gap-1.5 rounded-lg bg-accent px-3 py-1.5 text-[12.5px] font-medium text-white hover:brightness-110 disabled:opacity-50",children:[i?e.jsx(se,{size:13,className:"animate-spin"}):e.jsx(be,{size:13}),i?"Generating…":"Generate avatar"]})]}),I&&e.jsx("p",{role:"status",className:"mt-2 text-[11px] text-ink-secondary",children:"Save your connection changes before generating."}),T&&e.jsx("div",{role:"alert",className:"mt-3 text-[12px] text-danger",children:T})]})}const ye=168;function Sa({bot:a,disabled:l,onPatch:i}){const n=me(a.avatarZoom??Y),r=re(a.avatarFocusX??$),y=re(a.avatarFocusY??$),h=n!==Y||r!==$||y!==$,o=m.useRef(null),s=p=>{l||p.button!==0||(p.currentTarget.setPointerCapture(p.pointerId),o.current={x:p.clientX,y:p.clientY,focusX:r,focusY:y,pointer:p.pointerId})},d=p=>{const b=o.current;!b||p.pointerId!==b.pointer||i({avatarFocusX:re(b.focusX-(p.clientX-b.x)/ye/n),avatarFocusY:re(b.focusY-(p.clientY-b.y)/ye/n)})},g=p=>{o.current?.pointer===p.pointerId&&(o.current=null)},f=p=>{l||p.deltaY===0||(p.preventDefault(),i({avatarZoom:me(n+(p.deltaY<0?.08:-.08))}))};return e.jsxs("div",{className:"py-3",children:[e.jsx("div",{className:"mx-auto w-fit cursor-grab touch-none active:cursor-grabbing",onPointerDown:s,onPointerMove:d,onPointerUp:g,onPointerCancel:g,onWheel:f,children:e.jsx(pe,{bot:a,size:ye,animated:!1,label:`${a.name} avatar preview`})}),e.jsxs("div",{className:"mb-1.5 mt-4 flex items-baseline justify-between",children:[e.jsx("span",{className:"text-[12px] font-medium uppercase tracking-[0.08em] text-ink-secondary",children:"Zoom"}),e.jsxs("span",{className:"tabular-nums text-[12px] text-ink-secondary",children:[Math.round(n*100),"%"]})]}),e.jsx("input",{type:"range",min:Y,max:fe,step:.01,value:n,disabled:l,"aria-label":"Zoom avatar","aria-valuemin":Y,"aria-valuemax":fe,"aria-valuenow":n,"aria-valuetext":`${Math.round(n*100)}%`,onChange:p=>i({avatarZoom:me(Number(p.target.value))}),className:"w-full accent-accent"}),e.jsxs("div",{className:"mt-1.5 flex items-center justify-between gap-3 text-[11.5px] text-ink-secondary",children:[e.jsx("span",{children:"Drag the picture to reposition it. Scroll to zoom."}),h&&e.jsx("button",{type:"button",disabled:l,onClick:()=>i({avatarZoom:Y,avatarFocusX:$,avatarFocusY:$}),className:"shrink-0 rounded-md px-2 py-1 text-ink hover:bg-control disabled:opacity-50",children:"Reset framing"})]})]})}const Ma={mascot:"Mascot",circle:"Circle",rounded:"Rounded",square:"Square"};function Na({bot:a,activeState:l,mascotMotion:i,onPatch:n}){const{flushBotPatches:r}=O(),{request:y,uploadAvatar:h}=P(),o=je(),s=m.useRef(null),[d,g]=m.useState(!1),[f,p]=m.useState(!1),[b,B]=m.useState(!1),[x,v]=m.useState(null),D=a.avatarCrop??"mascot",C=m.useRef(D);C.current=D;const k=d||b||f,R=async t=>{if(!(!t||k)){g(!0),v(null);try{const N=h?null:await Pe(t),S=h?await h(t):N?He(N.path):null;if(!S)throw new Error("The uploaded image could not be used as an avatar");const A=C.current;n({avatarUrl:S,avatarCrop:A==="mascot"?"circle":A,avatarZoom:Y,avatarFocusX:$,avatarFocusY:$})}catch(N){v(N instanceof Error?N.message:String(N))}finally{g(!1),s.current&&(s.current.value="")}}},T=()=>{v(null),n({avatarUrl:null,avatarCrop:"mascot",avatarZoom:Y,avatarFocusX:$,avatarFocusY:$})},c=async t=>{if(!k){B(!0),v(null);try{const N=C.current;await r(a.id);const S=await y(`/api/bots/${a.id}/avatar/generate`,{method:"POST",body:JSON.stringify({prompt:t.trim()})}),A=C.current;n({avatarUrl:S.avatarUrl,avatarCrop:A===N?S.bot.avatarCrop??"circle":A})}catch(N){v(N instanceof Error?N.message:String(N))}finally{B(!1)}}};return e.jsxs("div",{className:"overflow-hidden rounded-xl border border-hairline/40 bg-card",children:[e.jsxs("div",{className:"flex items-center justify-between border-b border-hairline/40 px-3 py-2.5",children:[e.jsx("span",{className:"rounded-lg bg-control px-3 py-1.5 text-[14px] font-medium text-ink",children:"Avatar"}),e.jsx("button",{disabled:k,onClick:()=>n({avatarCrop:"mascot",color:"green",mascotExpression:null,mascotBody:"cursor"}),className:"rounded-md px-2 py-1.5 text-[13px] text-ink-secondary hover:bg-control hover:text-ink disabled:opacity-50",children:"Reset mascot"})]}),e.jsxs("div",{className:"p-3",children:[!!o?.icons.length&&e.jsxs("div",{className:"mb-3 border-b border-hairline/40 pb-3",children:[e.jsxs("div",{className:"mb-2 text-[13px] font-medium text-ink-secondary",children:[o.name," icons"]}),e.jsx("div",{className:"flex flex-wrap gap-2",children:o.icons.map(t=>e.jsx("button",{type:"button",disabled:k,title:t.name,"aria-label":`Use ${t.name} icon`,className:"flex size-12 items-center justify-center rounded-lg border border-hairline/40 hover:bg-control disabled:opacity-50",onClick:()=>{const N=Uint8Array.from(atob(t.image.slice(22)),S=>S.charCodeAt(0));R(new File([N],`${t.id}.png`,{type:"image/png"}))},children:e.jsx("img",{src:t.image,alt:"",className:"size-10 rounded-md object-contain"})},t.id))})]}),D!=="mascot"&&a.avatarUrl?e.jsx(Sa,{bot:a,disabled:k,onPatch:n}):e.jsx("div",{className:"flex justify-center py-3",children:e.jsx(pe,{bot:a,state:l,size:112,motion:i?.kind??"none",motionKey:i?.nonce??0})}),e.jsxs("div",{className:"mt-2 flex gap-2",children:[e.jsx("input",{ref:s,type:"file",accept:"image/png,image/jpeg,image/gif,image/webp",className:"sr-only",onChange:t=>{R(t.target.files?.[0])}}),e.jsxs("button",{type:"button",onClick:()=>s.current?.click(),disabled:k,className:"flex flex-1 items-center justify-center gap-1.5 rounded-lg bg-control px-3 py-2 text-[13px] text-ink hover:bg-raised-hover disabled:opacity-50",children:[d?e.jsx(se,{size:14,className:"animate-spin"}):e.jsx(fa,{size:14}),"Upload image"]}),a.avatarUrl&&e.jsx("button",{type:"button",onClick:T,disabled:k,"aria-label":"Remove custom avatar image",title:"Remove custom image",className:"flex size-10 items-center justify-center rounded-lg text-ink-secondary hover:bg-control hover:text-danger disabled:opacity-50",children:e.jsx(Be,{size:14})})]}),e.jsx("div",{className:"mt-1.5 text-[11.5px] text-ink-secondary",children:"PNG, JPEG, GIF, or WebP · up to 10 MB"}),e.jsx("div",{className:"mb-2 mt-4 text-[12px] font-medium uppercase tracking-[0.08em] text-ink-secondary",children:"Shape"}),e.jsx("div",{className:"grid grid-cols-4 overflow-hidden rounded-lg border border-hairline/40",children:Ee.map((t,N)=>e.jsx("button",{type:"button",disabled:k,"aria-pressed":D===t,onClick:()=>n({avatarCrop:t}),className:K("py-1.5 text-[12.5px] disabled:opacity-50",N>0&&"border-l border-hairline/40",D===t?"bg-control text-ink":"text-ink-secondary hover:bg-control/60 hover:text-ink"),children:Ma[t]},t))}),D==="mascot"&&e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"mb-2 mt-4 text-[12px] font-medium uppercase tracking-[0.08em] text-ink-secondary",children:"Expression"}),e.jsx("div",{className:"grid grid-cols-5 gap-2",children:Te.map(t=>e.jsx("button",{type:"button",disabled:k,"aria-pressed":l===t,onClick:()=>n({mascotExpression:t}),className:K("flex h-[58px] items-center justify-center rounded-xl bg-inset transition-colors hover:bg-control disabled:opacity-50",l===t&&"ring-2 ring-accent-border"),title:t,"aria-label":`Use ${t} expression`,children:e.jsx(ge,{color:a.color,bodyId:a.mascotBody??void 0,state:t,size:42,animated:!1})},t))}),e.jsx("div",{className:"mb-2 mt-4 text-[12px] font-medium uppercase tracking-[0.08em] text-ink-secondary",children:"Color"}),e.jsx("div",{className:"flex flex-wrap gap-2.5",children:Ge.map(t=>e.jsx("button",{type:"button",disabled:k,"aria-pressed":a.color===t,onClick:()=>n({color:t}),className:K("size-10 rounded-full border-2 border-transparent transition-transform hover:scale-110 disabled:opacity-50",a.color===t&&"ring-2 ring-accent-border ring-offset-2 ring-offset-card"),style:{backgroundColor:Je[t]},title:t,"aria-label":`Use ${t} mascot color`},t))}),e.jsx("div",{className:"mb-2 mt-4 text-[12px] font-medium uppercase tracking-[0.08em] text-ink-secondary",children:"Body"}),e.jsx("div",{className:"grid grid-cols-5 gap-1.5",children:Ke.map(t=>e.jsx("button",{type:"button",disabled:k,"aria-pressed":(a.mascotBody??"cursor")===t,"aria-label":`Use the ${Fe[t].name} body`,onClick:()=>n({mascotBody:t}),className:K("flex items-center justify-center rounded-lg py-1.5 disabled:opacity-50",(a.mascotBody??"cursor")===t?"bg-control text-ink":"text-ink-secondary hover:bg-control/60"),children:e.jsx(ge,{color:a.color,bodyId:t,size:34,animated:!1,trackPointer:!1})},t))})]}),e.jsx(ka,{botLabel:a.title||a.name,disabled:d,generating:b,onGenerate:c,onSavingChange:p}),x&&e.jsx("div",{role:"alert",className:"mt-3 text-[12px] text-danger",children:x})]})]})}function Ba({bot:a,onClose:l,inline:i=!1}){const n=m.useRef(null),r=m.useRef(l);r.current=l;const y=m.useCallback(()=>r.current(),[]);m.useEffect(()=>{const o=document.activeElement instanceof HTMLElement?document.activeElement:null;n.current?.focus();const s=d=>{if(d.key==="Escape"){d.preventDefault(),y();return}if(d.key!=="Tab")return;const g=[...n.current?.querySelectorAll('button:not([disabled]), [href], [tabindex]:not([tabindex="-1"])')??[]];if(g.length===0){d.preventDefault(),n.current?.focus();return}const f=g[0],p=g[g.length-1];d.shiftKey&&document.activeElement===f?(d.preventDefault(),p.focus()):!d.shiftKey&&document.activeElement===p&&(d.preventDefault(),f.focus())};return window.addEventListener("keydown",s),()=>{window.removeEventListener("keydown",s),o?.focus()}},[y]);const h=e.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/55 p-4 backdrop-blur-[2px] sm:p-6",onMouseDown:o=>o.target===o.currentTarget&&y(),children:e.jsxs("div",{ref:n,role:"dialog","aria-modal":"true","aria-labelledby":"bot-instructions-title",tabIndex:-1,className:"animate-pop-in flex max-h-[min(760px,calc(100dvh-2rem))] w-full max-w-[760px] flex-col overflow-hidden rounded-[24px] border border-hairline/50 bg-panel shadow-2xl shadow-black/50 outline-none",children:[e.jsxs("header",{className:"flex items-start justify-between gap-4 border-b border-hairline/40 px-6 pb-4 pt-6 sm:px-8 sm:pt-7",children:[e.jsxs("div",{className:"flex min-w-0 items-center gap-3",children:[e.jsx(pe,{bot:a,state:Ie(a.mascotExpression)??"idle",size:38,motion:"none",motionKey:0,animated:!1}),e.jsxs("div",{className:"min-w-0",children:[e.jsxs("div",{className:"flex items-center gap-2 text-accent-text",children:[e.jsx(oe,{size:15}),e.jsx("span",{className:"text-[11px] font-semibold uppercase tracking-[0.08em]",children:"Bot instructions"})]}),e.jsx("h2",{id:"bot-instructions-title",className:"mt-0.5 truncate text-[20px] font-semibold tracking-[-0.01em] text-ink",children:a.name}),a.title&&e.jsx("p",{className:"mt-0.5 truncate text-[12.5px] text-ink-secondary",children:a.title})]})]}),e.jsx("button",{type:"button",onClick:y,"aria-label":"Close bot instructions",className:"flex size-9 shrink-0 items-center justify-center rounded-lg text-ink-secondary hover:bg-raised hover:text-ink",children:e.jsx(De,{size:19})})]}),e.jsx("div",{className:"min-h-0 flex-1 overflow-y-auto px-6 py-5 sm:px-8 sm:py-6",children:a.description.trim()?e.jsx("div",{className:"whitespace-pre-wrap break-words rounded-xl border border-hairline/50 bg-inset px-4 py-4 text-[13.5px] leading-6 text-ink",children:a.description}):e.jsxs("div",{className:"rounded-xl border border-dashed border-hairline bg-inset px-5 py-12 text-center",children:[e.jsx(oe,{size:22,className:"mx-auto text-ink-tertiary"}),e.jsx("p",{className:"mt-3 text-[13px] font-medium text-ink",children:"No instructions yet"}),e.jsx("p",{className:"mt-1 text-[12px] text-ink-secondary",children:"Add them from this bot’s profile."})]})}),e.jsxs("footer",{className:"flex items-center justify-between gap-4 border-t border-hairline/40 px-6 py-4 text-[11.5px] text-ink-secondary sm:px-8",children:[e.jsx("span",{children:"Included in this bot’s context on every turn."}),e.jsx("button",{type:"button",onClick:y,className:"rounded-lg bg-control px-3.5 py-2 text-[13px] font-medium text-ink hover:bg-raised-hover",children:"Done"})]})]})});return i?h:Oe.createPortal(h,document.body)}const V="w-full rounded-lg border border-hairline/40 bg-inset px-3 py-2.5 text-[15px] text-ink placeholder:text-ink-secondary focus:outline-none";function Da({label:a,children:l}){return m.createElement("label",{className:"block"},m.createElement("div",{className:"mb-1.5 text-[13px] text-ink-secondary"},a),l)}function La({bot:a}){const{request:l,draft:i}=P(),[n,r]=m.useState([]),y=a.installedPackage?.source==="org";m.useEffect(()=>{if(!y||i)return;let o=!1;return l("/api/org-library").then(s=>{o||r(s.installs??[])}).catch(()=>{}),()=>{o=!0}},[a.id,y,i]);const h=We(a.installedPackage,n);return h?e.jsxs("div",{className:"rounded-lg bg-inset px-3 py-2 text-[12px] text-ink-secondary",children:[e.jsx("div",{className:"truncate",children:h.line}),h.withdrawn&&e.jsx("div",{className:"mt-0.5 text-warning",children:h.withdrawn})]}):null}const ue=a=>(a??"").trim();function wa(a,l){const i=ue(a.section);return l.some(n=>n.id!==a.id&&!!n.chiefOfStaff&&(ue(n.section)===i||Array.isArray(n.managedSections)&&n.managedSections.some(r=>typeof r=="string"&&ue(r)===i)))}function J({bot:a,kind:l}){const{draft:i}=P(),{state:n}=O();return i||!wa(a,n.bots)?null:e.jsx("div",{className:"mt-1 text-[11.5px] leading-snug text-ink-secondary",children:u(l==="chief"?"botSettings.proposal.chief":"botSettings.proposal.owner")})}const Ra=JSON.parse('["Aaren","Aarika","Abagael","Abagail","Abbe","Abbey","Abbi","Abbie","Abby","Abbye","Abigael","Abigail","Abigale","Abra","Ada","Adah","Adaline","Adan","Adara","Adda","Addi","Addia","Addie","Addy","Adel","Adela","Adelaida","Adelaide","Adele","Adelheid","Adelice","Adelina","Adelind","Adeline","Adella","Adelle","Adena","Adey","Adi","Adiana","Adina","Adora","Adore","Adoree","Adorne","Adrea","Adria","Adriaens","Adrian","Adriana","Adriane","Adrianna","Adrianne","Adriena","Adrienne","Aeriel","Aeriela","Aeriell","Afton","Ag","Agace","Agata","Agatha","Agathe","Aggi","Aggie","Aggy","Agna","Agnella","Agnes","Agnese","Agnesse","Agneta","Agnola","Agretha","Aida","Aidan","Aigneis","Aila","Aile","Ailee","Aileen","Ailene","Ailey","Aili","Ailina","Ailis","Ailsun","Ailyn","Aime","Aimee","Aimil","Aindrea","Ainslee","Ainsley","Ainslie","Ajay","Alaine","Alameda","Alana","Alanah","Alane","Alanna","Alayne","Alberta","Albertina","Albertine","Albina","Alecia","Aleda","Aleece","Aleen","Alejandra","Alejandrina","Alena","Alene","Alessandra","Aleta","Alethea","Alex","Alexa","Alexandra","Alexandrina","Alexi","Alexia","Alexina","Alexine","Alexis","Alfi","Alfie","Alfreda","Alfy","Ali","Alia","Alica","Alice","Alicea","Alicia","Alida","Alidia","Alie","Alika","Alikee","Alina","Aline","Alis","Alisa","Alisha","Alison","Alissa","Alisun","Alix","Aliza","Alla","Alleen","Allegra","Allene","Alli","Allianora","Allie","Allina","Allis","Allison","Allissa","Allix","Allsun","Allx","Ally","Allyce","Allyn","Allys","Allyson","Alma","Almeda","Almeria","Almeta","Almira","Almire","Aloise","Aloisia","Aloysia","Alta","Althea","Alvera","Alverta","Alvina","Alvinia","Alvira","Alyce","Alyda","Alys","Alysa","Alyse","Alysia","Alyson","Alyss","Alyssa","Amabel","Amabelle","Amalea","Amalee","Amaleta","Amalia","Amalie","Amalita","Amalle","Amanda","Amandi","Amandie","Amandy","Amara","Amargo","Amata","Amber","Amberly","Ambur","Ame","Amelia","Amelie","Amelina","Ameline","Amelita","Ami","Amie","Amii","Amil","Amitie","Amity","Ammamaria","Amy","Amye","Ana","Anabal","Anabel","Anabella","Anabelle","Analiese","Analise","Anallese","Anallise","Anastasia","Anastasie","Anastassia","Anatola","Andee","Andeee","Anderea","Andi","Andie","Andra","Andrea","Andreana","Andree","Andrei","Andria","Andriana","Andriette","Andromache","Andy","Anestassia","Anet","Anett","Anetta","Anette","Ange","Angel","Angela","Angele","Angelia","Angelica","Angelika","Angelina","Angeline","Angelique","Angelita","Angelle","Angie","Angil","Angy","Ania","Anica","Anissa","Anita","Anitra","Anjanette","Anjela","Ann","Ann-Marie","Anna","Anna-Diana","Anna-Diane","Anna-Maria","Annabal","Annabel","Annabela","Annabell","Annabella","Annabelle","Annadiana","Annadiane","Annalee","Annaliese","Annalise","Annamaria","Annamarie","Anne","Anne-Corinne","Anne-Marie","Annecorinne","Anneliese","Annelise","Annemarie","Annetta","Annette","Anni","Annice","Annie","Annis","Annissa","Annmaria","Annmarie","Annnora","Annora","Anny","Anselma","Ansley","Anstice","Anthe","Anthea","Anthia","Anthiathia","Antoinette","Antonella","Antonetta","Antonia","Antonie","Antonietta","Antonina","Anya","Appolonia","April","Aprilette","Ara","Arabel","Arabela","Arabele","Arabella","Arabelle","Arda","Ardath","Ardeen","Ardelia","Ardelis","Ardella","Ardelle","Arden","Ardene","Ardenia","Ardine","Ardis","Ardisj","Ardith","Ardra","Ardyce","Ardys","Ardyth","Aretha","Ariadne","Ariana","Aridatha","Ariel","Ariela","Ariella","Arielle","Arlana","Arlee","Arleen","Arlen","Arlena","Arlene","Arleta","Arlette","Arleyne","Arlie","Arliene","Arlina","Arlinda","Arline","Arluene","Arly","Arlyn","Arlyne","Aryn","Ashely","Ashia","Ashien","Ashil","Ashla","Ashlan","Ashlee","Ashleigh","Ashlen","Ashley","Ashli","Ashlie","Ashly","Asia","Astra","Astrid","Astrix","Atalanta","Athena","Athene","Atlanta","Atlante","Auberta","Aubine","Aubree","Aubrette","Aubrey","Aubrie","Aubry","Audi","Audie","Audra","Audre","Audrey","Audrie","Audry","Audrye","Audy","Augusta","Auguste","Augustina","Augustine","Aundrea","Aura","Aurea","Aurel","Aurelea","Aurelia","Aurelie","Auria","Aurie","Aurilia","Aurlie","Auroora","Aurora","Aurore","Austin","Austina","Austine","Ava","Aveline","Averil","Averyl","Avie","Avis","Aviva","Avivah","Avril","Avrit","Ayn","Bab","Babara","Babb","Babbette","Babbie","Babette","Babita","Babs","Bambi","Bambie","Bamby","Barb","Barbabra","Barbara","Barbara-Anne","Barbaraanne","Barbe","Barbee","Barbette","Barbey","Barbi","Barbie","Barbra","Barby","Bari","Barrie","Barry","Basia","Bathsheba","Batsheva","Bea","Beatrice","Beatrisa","Beatrix","Beatriz","Bebe","Becca","Becka","Becki","Beckie","Becky","Bee","Beilul","Beitris","Bekki","Bel","Belia","Belicia","Belinda","Belita","Bell","Bella","Bellanca","Belle","Bellina","Belva","Belvia","Bendite","Benedetta","Benedicta","Benedikta","Benetta","Benita","Benni","Bennie","Benny","Benoite","Berenice","Beret","Berget","Berna","Bernadene","Bernadette","Bernadina","Bernadine","Bernardina","Bernardine","Bernelle","Bernete","Bernetta","Bernette","Berni","Bernice","Bernie","Bernita","Berny","Berri","Berrie","Berry","Bert","Berta","Berte","Bertha","Berthe","Berti","Bertie","Bertina","Bertine","Berty","Beryl","Beryle","Bess","Bessie","Bessy","Beth","Bethanne","Bethany","Bethena","Bethina","Betsey","Betsy","Betta","Bette","Bette-Ann","Betteann","Betteanne","Betti","Bettina","Bettine","Betty","Bettye","Beulah","Bev","Beverie","Beverlee","Beverley","Beverlie","Beverly","Bevvy","Bianca","Bianka","Bibbie","Bibby","Bibbye","Bibi","Biddie","Biddy","Bidget","Bili","Bill","Billi","Billie","Billy","Billye","Binni","Binnie","Binny","Bird","Birdie","Birgit","Birgitta","Blair","Blaire","Blake","Blakelee","Blakeley","Blanca","Blanch","Blancha","Blanche","Blinni","Blinnie","Blinny","Bliss","Blisse","Blithe","Blondell","Blondelle","Blondie","Blondy","Blythe","Bobbe","Bobbee","Bobbette","Bobbi","Bobbie","Bobby","Bobbye","Bobette","Bobina","Bobine","Bobinette","Bonita","Bonnee","Bonni","Bonnibelle","Bonnie","Bonny","Brana","Brandais","Brande","Brandea","Brandi","Brandice","Brandie","Brandise","Brandy","Breanne","Brear","Bree","Breena","Bren","Brena","Brenda","Brenn","Brenna","Brett","Bria","Briana","Brianna","Brianne","Bride","Bridget","Bridgette","Bridie","Brier","Brietta","Brigid","Brigida","Brigit","Brigitta","Brigitte","Brina","Briney","Brinn","Brinna","Briny","Brit","Brita","Britney","Britni","Britt","Britta","Brittan","Brittaney","Brittani","Brittany","Britte","Britteny","Brittne","Brittney","Brittni","Brook","Brooke","Brooks","Brunhilda","Brunhilde","Bryana","Bryn","Bryna","Brynn","Brynna","Brynne","Buffy","Bunni","Bunnie","Bunny","Cacilia","Cacilie","Cahra","Cairistiona","Caitlin","Caitrin","Cal","Calida","Calla","Calley","Calli","Callida","Callie","Cally","Calypso","Cam","Camala","Camel","Camella","Camellia","Cami","Camila","Camile","Camilla","Camille","Cammi","Cammie","Cammy","Candace","Candi","Candice","Candida","Candide","Candie","Candis","Candra","Candy","Caprice","Cara","Caralie","Caren","Carena","Caresa","Caressa","Caresse","Carey","Cari","Caria","Carie","Caril","Carilyn","Carin","Carina","Carine","Cariotta","Carissa","Carita","Caritta","Carla","Carlee","Carleen","Carlen","Carlene","Carley","Carlie","Carlin","Carlina","Carline","Carlita","Carlota","Carlotta","Carly","Carlye","Carlyn","Carlynn","Carlynne","Carma","Carmel","Carmela","Carmelia","Carmelina","Carmelita","Carmella","Carmelle","Carmen","Carmencita","Carmina","Carmine","Carmita","Carmon","Caro","Carol","Carol-Jean","Carola","Carolan","Carolann","Carole","Carolee","Carolin","Carolina","Caroline","Caroljean","Carolyn","Carolyne","Carolynn","Caron","Carree","Carri","Carrie","Carrissa","Carroll","Carry","Cary","Caryl","Caryn","Casandra","Casey","Casi","Casie","Cass","Cassandra","Cassandre","Cassandry","Cassaundra","Cassey","Cassi","Cassie","Cassondra","Cassy","Catarina","Cate","Caterina","Catha","Catharina","Catharine","Cathe","Cathee","Catherin","Catherina","Catherine","Cathi","Cathie","Cathleen","Cathlene","Cathrin","Cathrine","Cathryn","Cathy","Cathyleen","Cati","Catie","Catina","Catlaina","Catlee","Catlin","Catrina","Catriona","Caty","Caye","Cayla","Cecelia","Cecil","Cecile","Ceciley","Cecilia","Cecilla","Cecily","Ceil","Cele","Celene","Celesta","Celeste","Celestia","Celestina","Celestine","Celestyn","Celestyna","Celia","Celie","Celina","Celinda","Celine","Celinka","Celisse","Celka","Celle","Cesya","Chad","Chanda","Chandal","Chandra","Channa","Chantal","Chantalle","Charil","Charin","Charis","Charissa","Charisse","Charita","Charity","Charla","Charlean","Charleen","Charlena","Charlene","Charline","Charlot","Charlotta","Charlotte","Charmain","Charmaine","Charmane","Charmian","Charmine","Charmion","Charo","Charyl","Chastity","Chelsae","Chelsea","Chelsey","Chelsie","Chelsy","Cher","Chere","Cherey","Cheri","Cherianne","Cherice","Cherida","Cherie","Cherilyn","Cherilynn","Cherin","Cherise","Cherish","Cherlyn","Cherri","Cherrita","Cherry","Chery","Cherye","Cheryl","Cheslie","Chiarra","Chickie","Chicky","Chiquia","Chiquita","Chlo","Chloe","Chloette","Chloris","Chris","Chrissie","Chrissy","Christa","Christabel","Christabella","Christal","Christalle","Christan","Christean","Christel","Christen","Christi","Christian","Christiana","Christiane","Christie","Christin","Christina","Christine","Christy","Christye","Christyna","Chrysa","Chrysler","Chrystal","Chryste","Chrystel","Cicely","Cicily","Ciel","Cilka","Cinda","Cindee","Cindelyn","Cinderella","Cindi","Cindie","Cindra","Cindy","Cinnamon","Cissiee","Cissy","Clair","Claire","Clara","Clarabelle","Clare","Claresta","Clareta","Claretta","Clarette","Clarey","Clari","Claribel","Clarice","Clarie","Clarinda","Clarine","Clarissa","Clarisse","Clarita","Clary","Claude","Claudelle","Claudetta","Claudette","Claudia","Claudie","Claudina","Claudine","Clea","Clem","Clemence","Clementia","Clementina","Clementine","Clemmie","Clemmy","Cleo","Cleopatra","Clerissa","Clio","Clo","Cloe","Cloris","Clotilda","Clovis","Codee","Codi","Codie","Cody","Coleen","Colene","Coletta","Colette","Colleen","Collen","Collete","Collette","Collie","Colline","Colly","Con","Concettina","Conchita","Concordia","Conni","Connie","Conny","Consolata","Constance","Constancia","Constancy","Constanta","Constantia","Constantina","Constantine","Consuela","Consuelo","Cookie","Cora","Corabel","Corabella","Corabelle","Coral","Coralie","Coraline","Coralyn","Cordelia","Cordelie","Cordey","Cordi","Cordie","Cordula","Cordy","Coreen","Corella","Corenda","Corene","Coretta","Corette","Corey","Cori","Corie","Corilla","Corina","Corine","Corinna","Corinne","Coriss","Corissa","Corliss","Corly","Cornela","Cornelia","Cornelle","Cornie","Corny","Correna","Correy","Corri","Corrianne","Corrie","Corrina","Corrine","Corrinne","Corry","Cortney","Cory","Cosetta","Cosette","Costanza","Courtenay","Courtnay","Courtney","Crin","Cris","Crissie","Crissy","Crista","Cristabel","Cristal","Cristen","Cristi","Cristie","Cristin","Cristina","Cristine","Cristionna","Cristy","Crysta","Crystal","Crystie","Cthrine","Cyb","Cybil","Cybill","Cymbre","Cynde","Cyndi","Cyndia","Cyndie","Cyndy","Cynthea","Cynthia","Cynthie","Cynthy","Dacey","Dacia","Dacie","Dacy","Dael","Daffi","Daffie","Daffy","Dagmar","Dahlia","Daile","Daisey","Daisi","Daisie","Daisy","Dale","Dalenna","Dalia","Dalila","Dallas","Daloris","Damara","Damaris","Damita","Dana","Danell","Danella","Danette","Dani","Dania","Danica","Danice","Daniela","Daniele","Daniella","Danielle","Danika","Danila","Danit","Danita","Danna","Danni","Dannie","Danny","Dannye","Danya","Danyelle","Danyette","Daphene","Daphna","Daphne","Dara","Darb","Darbie","Darby","Darcee","Darcey","Darci","Darcie","Darcy","Darda","Dareen","Darell","Darelle","Dari","Daria","Darice","Darla","Darleen","Darlene","Darline","Darlleen","Daron","Darrelle","Darryl","Darsey","Darsie","Darya","Daryl","Daryn","Dasha","Dasi","Dasie","Dasya","Datha","Daune","Daveen","Daveta","Davida","Davina","Davine","Davita","Dawn","Dawna","Dayle","Dayna","Ddene","De","Deana","Deane","Deanna","Deanne","Deb","Debbi","Debbie","Debby","Debee","Debera","Debi","Debor","Debora","Deborah","Debra","Dede","Dedie","Dedra","Dee","Dee","Dee","Deeann","Deeanne","Deedee","Deena","Deerdre","Deeyn","Dehlia","Deidre","Deina","Deirdre","Del","Dela","Delcina","Delcine","Delia","Delila","Delilah","Delinda","Dell","Della","Delly","Delora","Delores","Deloria","Deloris","Delphine","Delphinia","Demeter","Demetra","Demetria","Demetris","Dena","Deni","Denice","Denise","Denna","Denni","Dennie","Denny","Deny","Denys","Denyse","Deonne","Desdemona","Desirae","Desiree","Desiri","Deva","Devan","Devi","Devin","Devina","Devinne","Devon","Devondra","Devonna","Devonne","Devora","Di","Diahann","Dian","Diana","Diandra","Diane","Diane-Marie","Dianemarie","Diann","Dianna","Dianne","Diannne","Didi","Dido","Diena","Dierdre","Dina","Dinah","Dinnie","Dinny","Dion","Dione","Dionis","Dionne","Dita","Dix","Dixie","Dniren","Dode","Dodi","Dodie","Dody","Doe","Doll","Dolley","Dolli","Dollie","Dolly","Dolores","Dolorita","Doloritas","Domeniga","Dominga","Domini","Dominica","Dominique","Dona","Donella","Donelle","Donetta","Donia","Donica","Donielle","Donna","Donnamarie","Donni","Donnie","Donny","Dora","Doralia","Doralin","Doralyn","Doralynn","Doralynne","Dore","Doreen","Dorelia","Dorella","Dorelle","Dorena","Dorene","Doretta","Dorette","Dorey","Dori","Doria","Dorian","Dorice","Dorie","Dorine","Doris","Dorisa","Dorise","Dorita","Doro","Dorolice","Dorolisa","Dorotea","Doroteya","Dorothea","Dorothee","Dorothy","Dorree","Dorri","Dorrie","Dorris","Dorry","Dorthea","Dorthy","Dory","Dosi","Dot","Doti","Dotti","Dottie","Dotty","Dre","Dreddy","Dredi","Drona","Dru","Druci","Drucie","Drucill","Drucy","Drusi","Drusie","Drusilla","Drusy","Dulce","Dulcea","Dulci","Dulcia","Dulciana","Dulcie","Dulcine","Dulcinea","Dulcy","Dulsea","Dusty","Dyan","Dyana","Dyane","Dyann","Dyanna","Dyanne","Dyna","Dynah","Eachelle","Eada","Eadie","Eadith","Ealasaid","Eartha","Easter","Eba","Ebba","Ebonee","Ebony","Eda","Eddi","Eddie","Eddy","Ede","Edee","Edeline","Eden","Edi","Edie","Edin","Edita","Edith","Editha","Edithe","Ediva","Edna","Edwina","Edy","Edyth","Edythe","Effie","Eileen","Eilis","Eimile","Eirena","Ekaterina","Elaina","Elaine","Elana","Elane","Elayne","Elberta","Elbertina","Elbertine","Eleanor","Eleanora","Eleanore","Electra","Eleen","Elena","Elene","Eleni","Elenore","Eleonora","Eleonore","Elfie","Elfreda","Elfrida","Elfrieda","Elga","Elianora","Elianore","Elicia","Elie","Elinor","Elinore","Elisa","Elisabet","Elisabeth","Elisabetta","Elise","Elisha","Elissa","Elita","Eliza","Elizabet","Elizabeth","Elka","Elke","Ella","Elladine","Elle","Ellen","Ellene","Ellette","Elli","Ellie","Ellissa","Elly","Ellyn","Ellynn","Elmira","Elna","Elnora","Elnore","Eloisa","Eloise","Elonore","Elora","Elsa","Elsbeth","Else","Elset","Elsey","Elsi","Elsie","Elsinore","Elspeth","Elsy","Elva","Elvera","Elvina","Elvira","Elwira","Elyn","Elyse","Elysee","Elysha","Elysia","Elyssa","Em","Ema","Emalee","Emalia","Emelda","Emelia","Emelina","Emeline","Emelita","Emelyne","Emera","Emilee","Emili","Emilia","Emilie","Emiline","Emily","Emlyn","Emlynn","Emlynne","Emma","Emmalee","Emmaline","Emmalyn","Emmalynn","Emmalynne","Emmeline","Emmey","Emmi","Emmie","Emmy","Emmye","Emogene","Emyle","Emylee","Engracia","Enid","Enrica","Enrichetta","Enrika","Enriqueta","Eolanda","Eolande","Eran","Erda","Erena","Erica","Ericha","Ericka","Erika","Erin","Erina","Erinn","Erinna","Erma","Ermengarde","Ermentrude","Ermina","Erminia","Erminie","Erna","Ernaline","Ernesta","Ernestine","Ertha","Eryn","Esma","Esmaria","Esme","Esmeralda","Essa","Essie","Essy","Esta","Estel","Estele","Estell","Estella","Estelle","Ester","Esther","Estrella","Estrellita","Ethel","Ethelda","Ethelin","Ethelind","Etheline","Ethelyn","Ethyl","Etta","Etti","Ettie","Etty","Eudora","Eugenia","Eugenie","Eugine","Eula","Eulalie","Eunice","Euphemia","Eustacia","Eva","Evaleen","Evangelia","Evangelin","Evangelina","Evangeline","Evania","Evanne","Eve","Eveleen","Evelina","Eveline","Evelyn","Evey","Evie","Evita","Evonne","Evvie","Evvy","Evy","Eyde","Eydie","Ezmeralda","Fae","Faina","Faith","Fallon","Fan","Fanchette","Fanchon","Fancie","Fancy","Fanechka","Fania","Fanni","Fannie","Fanny","Fanya","Fara","Farah","Farand","Farica","Farra","Farrah","Farrand","Faun","Faunie","Faustina","Faustine","Fawn","Fawne","Fawnia","Fay","Faydra","Faye","Fayette","Fayina","Fayre","Fayth","Faythe","Federica","Fedora","Felecia","Felicdad","Felice","Felicia","Felicity","Felicle","Felipa","Felisha","Felita","Feliza","Fenelia","Feodora","Ferdinanda","Ferdinande","Fern","Fernanda","Fernande","Fernandina","Ferne","Fey","Fiann","Fianna","Fidela","Fidelia","Fidelity","Fifi","Fifine","Filia","Filide","Filippa","Fina","Fiona","Fionna","Fionnula","Fiorenze","Fleur","Fleurette","Flo","Flor","Flora","Florance","Flore","Florella","Florence","Florencia","Florentia","Florenza","Florette","Flori","Floria","Florida","Florie","Florina","Florinda","Floris","Florri","Florrie","Florry","Flory","Flossi","Flossie","Flossy","Flss","Fran","Francene","Frances","Francesca","Francine","Francisca","Franciska","Francoise","Francyne","Frank","Frankie","Franky","Franni","Frannie","Franny","Frayda","Fred","Freda","Freddi","Freddie","Freddy","Fredelia","Frederica","Fredericka","Frederique","Fredi","Fredia","Fredra","Fredrika","Freida","Frieda","Friederike","Fulvia","Gabbey","Gabbi","Gabbie","Gabey","Gabi","Gabie","Gabriel","Gabriela","Gabriell","Gabriella","Gabrielle","Gabriellia","Gabrila","Gaby","Gae","Gael","Gail","Gale","Gale","Galina","Garland","Garnet","Garnette","Gates","Gavra","Gavrielle","Gay","Gaye","Gayel","Gayla","Gayle","Gayleen","Gaylene","Gaynor","Gelya","Gena","Gene","Geneva","Genevieve","Genevra","Genia","Genna","Genni","Gennie","Gennifer","Genny","Genovera","Genvieve","George","Georgeanna","Georgeanne","Georgena","Georgeta","Georgetta","Georgette","Georgia","Georgiana","Georgianna","Georgianne","Georgie","Georgina","Georgine","Geralda","Geraldine","Gerda","Gerhardine","Geri","Gerianna","Gerianne","Gerladina","Germain","Germaine","Germana","Gerri","Gerrie","Gerrilee","Gerry","Gert","Gerta","Gerti","Gertie","Gertrud","Gertruda","Gertrude","Gertrudis","Gerty","Giacinta","Giana","Gianina","Gianna","Gigi","Gilberta","Gilberte","Gilbertina","Gilbertine","Gilda","Gilemette","Gill","Gillan","Gilli","Gillian","Gillie","Gilligan","Gilly","Gina","Ginelle","Ginevra","Ginger","Ginni","Ginnie","Ginnifer","Ginny","Giorgia","Giovanna","Gipsy","Giralda","Gisela","Gisele","Gisella","Giselle","Giuditta","Giulia","Giulietta","Giustina","Gizela","Glad","Gladi","Gladys","Gleda","Glen","Glenda","Glenine","Glenn","Glenna","Glennie","Glennis","Glori","Gloria","Gloriana","Gloriane","Glory","Glyn","Glynda","Glynis","Glynnis","Gnni","Godiva","Golda","Goldarina","Goldi","Goldia","Goldie","Goldina","Goldy","Grace","Gracia","Gracie","Grata","Gratia","Gratiana","Gray","Grayce","Grazia","Greer","Greta","Gretal","Gretchen","Grete","Gretel","Grethel","Gretna","Gretta","Grier","Griselda","Grissel","Guendolen","Guenevere","Guenna","Guglielma","Gui","Guillema","Guillemette","Guinevere","Guinna","Gunilla","Gus","Gusella","Gussi","Gussie","Gussy","Gusta","Gusti","Gustie","Gusty","Gwen","Gwendolen","Gwendolin","Gwendolyn","Gweneth","Gwenette","Gwenneth","Gwenni","Gwennie","Gwenny","Gwenora","Gwenore","Gwyn","Gwyneth","Gwynne","Gypsy","Hadria","Hailee","Haily","Haleigh","Halette","Haley","Hali","Halie","Halimeda","Halley","Halli","Hallie","Hally","Hana","Hanna","Hannah","Hanni","Hannie","Hannis","Hanny","Happy","Harlene","Harley","Harli","Harlie","Harmonia","Harmonie","Harmony","Harri","Harrie","Harriet","Harriett","Harrietta","Harriette","Harriot","Harriott","Hatti","Hattie","Hatty","Hayley","Hazel","Heath","Heather","Heda","Hedda","Heddi","Heddie","Hedi","Hedvig","Hedvige","Hedwig","Hedwiga","Hedy","Heida","Heidi","Heidie","Helaina","Helaine","Helen","Helen-Elizabeth","Helena","Helene","Helenka","Helga","Helge","Helli","Heloise","Helsa","Helyn","Hendrika","Henka","Henrie","Henrieta","Henrietta","Henriette","Henryetta","Hephzibah","Hermia","Hermina","Hermine","Herminia","Hermione","Herta","Hertha","Hester","Hesther","Hestia","Hetti","Hettie","Hetty","Hilary","Hilda","Hildagard","Hildagarde","Hilde","Hildegaard","Hildegarde","Hildy","Hillary","Hilliary","Hinda","Holli","Hollie","Holly","Holly-Anne","Hollyanne","Honey","Honor","Honoria","Hope","Horatia","Hortense","Hortensia","Hulda","Hyacinth","Hyacintha","Hyacinthe","Hyacinthia","Hyacinthie","Hynda","Ianthe","Ibbie","Ibby","Ida","Idalia","Idalina","Idaline","Idell","Idelle","Idette","Ileana","Ileane","Ilene","Ilise","Ilka","Illa","Ilsa","Ilse","Ilysa","Ilyse","Ilyssa","Imelda","Imogen","Imogene","Imojean","Ina","Indira","Ines","Inesita","Inessa","Inez","Inga","Ingaberg","Ingaborg","Inge","Ingeberg","Ingeborg","Inger","Ingrid","Ingunna","Inna","Iolande","Iolanthe","Iona","Iormina","Ira","Irena","Irene","Irina","Iris","Irita","Irma","Isa","Isabel","Isabelita","Isabella","Isabelle","Isadora","Isahella","Iseabal","Isidora","Isis","Isobel","Issi","Issie","Issy","Ivett","Ivette","Ivie","Ivonne","Ivory","Ivy","Izabel","Jacenta","Jacinda","Jacinta","Jacintha","Jacinthe","Jackelyn","Jacki","Jackie","Jacklin","Jacklyn","Jackquelin","Jackqueline","Jacky","Jaclin","Jaclyn","Jacquelin","Jacqueline","Jacquelyn","Jacquelynn","Jacquenetta","Jacquenette","Jacquetta","Jacquette","Jacqui","Jacquie","Jacynth","Jada","Jade","Jaime","Jaimie","Jaine","Jami","Jamie","Jamima","Jammie","Jan","Jana","Janaya","Janaye","Jandy","Jane","Janean","Janeczka","Janeen","Janel","Janela","Janella","Janelle","Janene","Janenna","Janessa","Janet","Janeta","Janetta","Janette","Janeva","Janey","Jania","Janice","Janie","Janifer","Janina","Janine","Janis","Janith","Janka","Janna","Jannel","Jannelle","Janot","Jany","Jaquelin","Jaquelyn","Jaquenetta","Jaquenette","Jaquith","Jasmin","Jasmina","Jasmine","Jayme","Jaymee","Jayne","Jaynell","Jazmin","Jean","Jeana","Jeane","Jeanelle","Jeanette","Jeanie","Jeanine","Jeanna","Jeanne","Jeannette","Jeannie","Jeannine","Jehanna","Jelene","Jemie","Jemima","Jemimah","Jemmie","Jemmy","Jen","Jena","Jenda","Jenelle","Jeni","Jenica","Jeniece","Jenifer","Jeniffer","Jenilee","Jenine","Jenn","Jenna","Jennee","Jennette","Jenni","Jennica","Jennie","Jennifer","Jennilee","Jennine","Jenny","Jeralee","Jere","Jeri","Jermaine","Jerrie","Jerrilee","Jerrilyn","Jerrine","Jerry","Jerrylee","Jess","Jessa","Jessalin","Jessalyn","Jessamine","Jessamyn","Jesse","Jesselyn","Jessi","Jessica","Jessie","Jessika","Jessy","Jewel","Jewell","Jewelle","Jill","Jillana","Jillane","Jillayne","Jilleen","Jillene","Jilli","Jillian","Jillie","Jilly","Jinny","Jo","Jo","Ann","Jo-Ann","Jo-Anne","Joan","Joana","Joane","Joanie","Joann","Joanna","Joanne","Joannes","Jobey","Jobi","Jobie","Jobina","Joby","Jobye","Jobyna","Jocelin","Joceline","Jocelyn","Jocelyne","Jodee","Jodi","Jodie","Jody","Joeann","Joela","Joelie","Joell","Joella","Joelle","Joellen","Joelly","Joellyn","Joelynn","Joete","Joey","Johanna","Johannah","Johna","Johnath","Johnette","Johnna","Joice","Jojo","Jolee","Joleen","Jolene","Joletta","Joli","Jolie","Joline","Joly","Jolyn","Jolynn","Jonell","Joni","Jonie","Jonis","Jordain","Jordan","Jordana","Jordanna","Jorey","Jori","Jorie","Jorrie","Jorry","Joscelin","Josee","Josefa","Josefina","Josepha","Josephina","Josephine","Josey","Josi","Josie","Josselyn","Josy","Jourdan","Joy","Joya","Joyan","Joyann","Joyce","Joycelin","Joye","Jsandye","Juana","Juanita","Judi","Judie","Judith","Juditha","Judy","Judye","Juieta","Julee","Juli","Julia","Juliana","Juliane","Juliann","Julianna","Julianne","Julie","Julienne","Juliet","Julieta","Julietta","Juliette","Julina","Juline","Julissa","Julita","June","Junette","Junia","Junie","Junina","Justina","Justine","Justinn","Jyoti","Kacey","Kacie","Kacy","Kaela","Kai","Kaia","Kaila","Kaile","Kailey","Kaitlin","Kaitlyn","Kaitlynn","Kaja","Kakalina","Kala","Kaleena","Kali","Kalie","Kalila","Kalina","Kalinda","Kalindi","Kalli","Kally","Kameko","Kamila","Kamilah","Kamillah","Kandace","Kandy","Kania","Kanya","Kara","Kara-Lynn","Karalee","Karalynn","Kare","Karee","Karel","Karen","Karena","Kari","Karia","Karie","Karil","Karilynn","Karin","Karina","Karine","Kariotta","Karisa","Karissa","Karita","Karla","Karlee","Karleen","Karlen","Karlene","Karlie","Karlotta","Karlotte","Karly","Karlyn","Karmen","Karna","Karol","Karola","Karole","Karolina","Karoline","Karoly","Karon","Karrah","Karrie","Karry","Kary","Karyl","Karylin","Karyn","Kasey","Kass","Kassandra","Kassey","Kassi","Kassia","Kassie","Kat","Kata","Katalin","Kate","Katee","Katerina","Katerine","Katey","Kath","Katha","Katharina","Katharine","Katharyn","Kathe","Katherina","Katherine","Katheryn","Kathi","Kathie","Kathleen","Kathlin","Kathrine","Kathryn","Kathryne","Kathy","Kathye","Kati","Katie","Katina","Katine","Katinka","Katleen","Katlin","Katrina","Katrine","Katrinka","Katti","Kattie","Katuscha","Katusha","Katy","Katya","Kay","Kaycee","Kaye","Kayla","Kayle","Kaylee","Kayley","Kaylil","Kaylyn","Keeley","Keelia","Keely","Kelcey","Kelci","Kelcie","Kelcy","Kelila","Kellen","Kelley","Kelli","Kellia","Kellie","Kellina","Kellsie","Kelly","Kellyann","Kelsey","Kelsi","Kelsy","Kendra","Kendre","Kenna","Keri","Keriann","Kerianne","Kerri","Kerrie","Kerrill","Kerrin","Kerry","Kerstin","Kesley","Keslie","Kessia","Kessiah","Ketti","Kettie","Ketty","Kevina","Kevyn","Ki","Kiah","Kial","Kiele","Kiersten","Kikelia","Kiley","Kim","Kimberlee","Kimberley","Kimberli","Kimberly","Kimberlyn","Kimbra","Kimmi","Kimmie","Kimmy","Kinna","Kip","Kipp","Kippie","Kippy","Kira","Kirbee","Kirbie","Kirby","Kiri","Kirsten","Kirsteni","Kirsti","Kirstin","Kirstyn","Kissee","Kissiah","Kissie","Kit","Kitti","Kittie","Kitty","Kizzee","Kizzie","Klara","Klarika","Klarrisa","Konstance","Konstanze","Koo","Kora","Koral","Koralle","Kordula","Kore","Korella","Koren","Koressa","Kori","Korie","Korney","Korrie","Korry","Kris","Krissie","Krissy","Krista","Kristal","Kristan","Kriste","Kristel","Kristen","Kristi","Kristien","Kristin","Kristina","Kristine","Kristy","Kristyn","Krysta","Krystal","Krystalle","Krystle","Krystyna","Kyla","Kyle","Kylen","Kylie","Kylila","Kylynn","Kym","Kynthia","Kyrstin","La","Verne","Lacee","Lacey","Lacie","Lacy","Ladonna","Laetitia","Laina","Lainey","Lana","Lanae","Lane","Lanette","Laney","Lani","Lanie","Lanita","Lanna","Lanni","Lanny","Lara","Laraine","Lari","Larina","Larine","Larisa","Larissa","Lark","Laryssa","Latashia","Latia","Latisha","Latrena","Latrina","Laura","Lauraine","Laural","Lauralee","Laure","Lauree","Laureen","Laurel","Laurella","Lauren","Laurena","Laurene","Lauretta","Laurette","Lauri","Laurianne","Laurice","Laurie","Lauryn","Lavena","Laverna","Laverne","Lavina","Lavinia","Lavinie","Layla","Layne","Layney","Lea","Leah","Leandra","Leann","Leanna","Leanor","Leanora","Lebbie","Leda","Lee","Leeann","Leeanne","Leela","Leelah","Leena","Leesa","Leese","Legra","Leia","Leigh","Leigha","Leila","Leilah","Leisha","Lela","Lelah","Leland","Lelia","Lena","Lenee","Lenette","Lenka","Lenna","Lenora","Lenore","Leodora","Leoine","Leola","Leoline","Leona","Leonanie","Leone","Leonelle","Leonie","Leonora","Leonore","Leontine","Leontyne","Leora","Leshia","Lesley","Lesli","Leslie","Lesly","Lesya","Leta","Lethia","Leticia","Letisha","Letitia","Letizia","Letta","Letti","Lettie","Letty","Lexi","Lexie","Lexine","Lexis","Lexy","Leyla","Lezlie","Lia","Lian","Liana","Liane","Lianna","Lianne","Lib","Libbey","Libbi","Libbie","Libby","Licha","Lida","Lidia","Liesa","Lil","Lila","Lilah","Lilas","Lilia","Lilian","Liliane","Lilias","Lilith","Lilla","Lilli","Lillian","Lillis","Lilllie","Lilly","Lily","Lilyan","Lin","Lina","Lind","Linda","Lindi","Lindie","Lindsay","Lindsey","Lindsy","Lindy","Linea","Linell","Linet","Linette","Linn","Linnea","Linnell","Linnet","Linnie","Linzy","Lira","Lisa","Lisabeth","Lisbeth","Lise","Lisetta","Lisette","Lisha","Lishe","Lissa","Lissi","Lissie","Lissy","Lita","Liuka","Liv","Liva","Livia","Livvie","Livvy","Livvyy","Livy","Liz","Liza","Lizabeth","Lizbeth","Lizette","Lizzie","Lizzy","Loella","Lois","Loise","Lola","Loleta","Lolita","Lolly","Lona","Lonee","Loni","Lonna","Lonni","Lonnie","Lora","Lorain","Loraine","Loralee","Loralie","Loralyn","Loree","Loreen","Lorelei","Lorelle","Loren","Lorena","Lorene","Lorenza","Loretta","Lorette","Lori","Loria","Lorianna","Lorianne","Lorie","Lorilee","Lorilyn","Lorinda","Lorine","Lorita","Lorna","Lorne","Lorraine","Lorrayne","Lorri","Lorrie","Lorrin","Lorry","Lory","Lotta","Lotte","Lotti","Lottie","Lotty","Lou","Louella","Louisa","Louise","Louisette","Loutitia","Lu","Luce","Luci","Lucia","Luciana","Lucie","Lucienne","Lucila","Lucilia","Lucille","Lucina","Lucinda","Lucine","Lucita","Lucky","Lucretia","Lucy","Ludovika","Luella","Luelle","Luisa","Luise","Lula","Lulita","Lulu","Lura","Lurette","Lurleen","Lurlene","Lurline","Lusa","Luz","Lyda","Lydia","Lydie","Lyn","Lynda","Lynde","Lyndel","Lyndell","Lyndsay","Lyndsey","Lyndsie","Lyndy","Lynea","Lynelle","Lynett","Lynette","Lynn","Lynna","Lynne","Lynnea","Lynnell","Lynnelle","Lynnet","Lynnett","Lynnette","Lynsey","Lyssa","Mab","Mabel","Mabelle","Mable","Mada","Madalena","Madalyn","Maddalena","Maddi","Maddie","Maddy","Madel","Madelaine","Madeleine","Madelena","Madelene","Madelin","Madelina","Madeline","Madella","Madelle","Madelon","Madelyn","Madge","Madlen","Madlin","Madonna","Mady","Mae","Maegan","Mag","Magda","Magdaia","Magdalen","Magdalena","Magdalene","Maggee","Maggi","Maggie","Maggy","Mahala","Mahalia","Maia","Maible","Maiga","Maighdiln","Mair","Maire","Maisey","Maisie","Maitilde","Mala","Malanie","Malena","Malia","Malina","Malinda","Malinde","Malissa","Malissia","Mallissa","Mallorie","Mallory","Malorie","Malory","Malva","Malvina","Malynda","Mame","Mamie","Manda","Mandi","Mandie","Mandy","Manon","Manya","Mara","Marabel","Marcela","Marcelia","Marcella","Marcelle","Marcellina","Marcelline","Marchelle","Marci","Marcia","Marcie","Marcile","Marcille","Marcy","Mareah","Maren","Marena","Maressa","Marga","Margalit","Margalo","Margaret","Margareta","Margarete","Margaretha","Margarethe","Margaretta","Margarette","Margarita","Margaux","Marge","Margeaux","Margery","Marget","Margette","Margi","Margie","Margit","Margo","Margot","Margret","Marguerite","Margy","Mari","Maria","Mariam","Marian","Mariana","Mariann","Marianna","Marianne","Maribel","Maribelle","Maribeth","Marice","Maridel","Marie","Marie-Ann","Marie-Jeanne","Marieann","Mariejeanne","Mariel","Mariele","Marielle","Mariellen","Marietta","Mariette","Marigold","Marijo","Marika","Marilee","Marilin","Marillin","Marilyn","Marin","Marina","Marinna","Marion","Mariquilla","Maris","Marisa","Mariska","Marissa","Marita","Maritsa","Mariya","Marj","Marja","Marje","Marji","Marjie","Marjorie","Marjory","Marjy","Marketa","Marla","Marlane","Marleah","Marlee","Marleen","Marlena","Marlene","Marley","Marlie","Marline","Marlo","Marlyn","Marna","Marne","Marney","Marni","Marnia","Marnie","Marquita","Marrilee","Marris","Marrissa","Marsha","Marsiella","Marta","Martelle","Martguerita","Martha","Marthe","Marthena","Marti","Martica","Martie","Martina","Martita","Marty","Martynne","Mary","Marya","Maryann","Maryanna","Maryanne","Marybelle","Marybeth","Maryellen","Maryjane","Maryjo","Maryl","Marylee","Marylin","Marylinda","Marylou","Marylynne","Maryrose","Marys","Marysa","Masha","Matelda","Mathilda","Mathilde","Matilda","Matilde","Matti","Mattie","Matty","Maud","Maude","Maudie","Maura","Maure","Maureen","Maureene","Maurene","Maurine","Maurise","Maurita","Maurizia","Mavis","Mavra","Max","Maxi","Maxie","Maxine","Maxy","May","Maybelle","Maye","Mead","Meade","Meagan","Meaghan","Meara","Mechelle","Meg","Megan","Megen","Meggi","Meggie","Meggy","Meghan","Meghann","Mehetabel","Mei","Mel","Mela","Melamie","Melania","Melanie","Melantha","Melany","Melba","Melesa","Melessa","Melicent","Melina","Melinda","Melinde","Melisa","Melisande","Melisandra","Melisenda","Melisent","Melissa","Melisse","Melita","Melitta","Mella","Melli","Mellicent","Mellie","Mellisa","Mellisent","Melloney","Melly","Melodee","Melodie","Melody","Melonie","Melony","Melosa","Melva","Mercedes","Merci","Mercie","Mercy","Meredith","Meredithe","Meridel","Meridith","Meriel","Merilee","Merilyn","Meris","Merissa","Merl","Merla","Merle","Merlina","Merline","Merna","Merola","Merralee","Merridie","Merrie","Merrielle","Merrile","Merrilee","Merrili","Merrill","Merrily","Merry","Mersey","Meryl","Meta","Mia","Micaela","Michaela","Michaelina","Michaeline","Michaella","Michal","Michel","Michele","Michelina","Micheline","Michell","Michelle","Micki","Mickie","Micky","Midge","Mignon","Mignonne","Miguela","Miguelita","Mikaela","Mil","Mildred","Mildrid","Milena","Milicent","Milissent","Milka","Milli","Millicent","Millie","Millisent","Milly","Milzie","Mimi","Min","Mina","Minda","Mindy","Minerva","Minetta","Minette","Minna","Minnaminnie","Minne","Minni","Minnie","Minnnie","Minny","Minta","Miof","Mela","Miquela","Mira","Mirabel","Mirabella","Mirabelle","Miran","Miranda","Mireielle","Mireille","Mirella","Mirelle","Miriam","Mirilla","Mirna","Misha","Missie","Missy","Misti","Misty","Mitzi","Modesta","Modestia","Modestine","Modesty","Moina","Moira","Moll","Mollee","Molli","Mollie","Molly","Mommy","Mona","Monah","Monica","Monika","Monique","Mora","Moreen","Morena","Morgan","Morgana","Morganica","Morganne","Morgen","Moria","Morissa","Morna","Moselle","Moyna","Moyra","Mozelle","Muffin","Mufi","Mufinella","Muire","Mureil","Murial","Muriel","Murielle","Myra","Myrah","Myranda","Myriam","Myrilla","Myrle","Myrlene","Myrna","Myrta","Myrtia","Myrtice","Myrtie","Myrtle","Nada","Nadean","Nadeen","Nadia","Nadine","Nadiya","Nady","Nadya","Nalani","Nan","Nana","Nananne","Nance","Nancee","Nancey","Nanci","Nancie","Nancy","Nanete","Nanette","Nani","Nanice","Nanine","Nannette","Nanni","Nannie","Nanny","Nanon","Naoma","Naomi","Nara","Nari","Nariko","Nat","Nata","Natala","Natalee","Natalie","Natalina","Nataline","Natalya","Natasha","Natassia","Nathalia","Nathalie","Natividad","Natka","Natty","Neala","Neda","Nedda","Nedi","Neely","Neila","Neile","Neilla","Neille","Nelia","Nelie","Nell","Nelle","Nelli","Nellie","Nelly","Nerissa","Nerita","Nert","Nerta","Nerte","Nerti","Nertie","Nerty","Nessa","Nessi","Nessie","Nessy","Nesta","Netta","Netti","Nettie","Nettle","Netty","Nevsa","Neysa","Nichol","Nichole","Nicholle","Nicki","Nickie","Nicky","Nicol","Nicola","Nicole","Nicolea","Nicolette","Nicoli","Nicolina","Nicoline","Nicolle","Nikaniki","Nike","Niki","Nikki","Nikkie","Nikoletta","Nikolia","Nina","Ninetta","Ninette","Ninnetta","Ninnette","Ninon","Nissa","Nisse","Nissie","Nissy","Nita","Nixie","Noami","Noel","Noelani","Noell","Noella","Noelle","Noellyn","Noelyn","Noemi","Nola","Nolana","Nolie","Nollie","Nomi","Nona","Nonah","Noni","Nonie","Nonna","Nonnah","Nora","Norah","Norean","Noreen","Norene","Norina","Norine","Norma","Norri","Norrie","Norry","Novelia","Nydia","Nyssa","Octavia","Odele","Odelia","Odelinda","Odella","Odelle","Odessa","Odetta","Odette","Odilia","Odille","Ofelia","Ofella","Ofilia","Ola","Olenka","Olga","Olia","Olimpia","Olive","Olivette","Olivia","Olivie","Oliy","Ollie","Olly","Olva","Olwen","Olympe","Olympia","Olympie","Ondrea","Oneida","Onida","Oona","Opal","Opalina","Opaline","Ophelia","Ophelie","Ora","Oralee","Oralia","Oralie","Oralla","Oralle","Orel","Orelee","Orelia","Orelie","Orella","Orelle","Oriana","Orly","Orsa","Orsola","Ortensia","Otha","Othelia","Othella","Othilia","Othilie","Ottilie","Page","Paige","Paloma","Pam","Pamela","Pamelina","Pamella","Pammi","Pammie","Pammy","Pandora","Pansie","Pansy","Paola","Paolina","Papagena","Pat","Patience","Patrica","Patrice","Patricia","Patrizia","Patsy","Patti","Pattie","Patty","Paula","Paule","Pauletta","Paulette","Pauli","Paulie","Paulina","Pauline","Paulita","Pauly","Pavia","Pavla","Pearl","Pearla","Pearle","Pearline","Peg","Pegeen","Peggi","Peggie","Peggy","Pen","Penelopa","Penelope","Penni","Pennie","Penny","Pepi","Pepita","Peri","Peria","Perl","Perla","Perle","Perri","Perrine","Perry","Persis","Pet","Peta","Petra","Petrina","Petronella","Petronia","Petronilla","Petronille","Petunia","Phaedra","Phaidra","Phebe","Phedra","Phelia","Phil","Philipa","Philippa","Philippe","Philippine","Philis","Phillida","Phillie","Phillis","Philly","Philomena","Phoebe","Phylis","Phyllida","Phyllis","Phyllys","Phylys","Pia","Pier","Pierette","Pierrette","Pietra","Piper","Pippa","Pippy","Polly","Pollyanna","Pooh","Poppy","Portia","Pris","Prisca","Priscella","Priscilla","Prissie","Pru","Prudence","Prudi","Prudy","Prue","Queenie","Quentin","Querida","Quinn","Quinta","Quintana","Quintilla","Quintina","Rachael","Rachel","Rachele","Rachelle","Rae","Raeann","Raf","Rafa","Rafaela","Rafaelia","Rafaelita","Rahal","Rahel","Raina","Raine","Rakel","Ralina","Ramona","Ramonda","Rana","Randa","Randee","Randene","Randi","Randie","Randy","Ranee","Rani","Rania","Ranice","Ranique","Ranna","Raphaela","Raquel","Raquela","Rasia","Rasla","Raven","Ray","Raychel","Raye","Rayna","Raynell","Rayshell","Rea","Reba","Rebbecca","Rebe","Rebeca","Rebecca","Rebecka","Rebeka","Rebekah","Rebekkah","Ree","Reeba","Reena","Reeta","Reeva","Regan","Reggi","Reggie","Regina","Regine","Reiko","Reina","Reine","Remy","Rena","Renae","Renata","Renate","Rene","Renee","Renell","Renelle","Renie","Rennie","Reta","Retha","Revkah","Rey","Reyna","Rhea","Rheba","Rheta","Rhetta","Rhiamon","Rhianna","Rhianon","Rhoda","Rhodia","Rhodie","Rhody","Rhona","Rhonda","Riane","Riannon","Rianon","Rica","Ricca","Rici","Ricki","Rickie","Ricky","Riki","Rikki","Rina","Risa","Rita","Riva","Rivalee","Rivi","Rivkah","Rivy","Roana","Roanna","Roanne","Robbi","Robbie","Robbin","Robby","Robbyn","Robena","Robenia","Roberta","Robin","Robina","Robinet","Robinett","Robinetta","Robinette","Robinia","Roby","Robyn","Roch","Rochell","Rochella","Rochelle","Rochette","Roda","Rodi","Rodie","Rodina","Rois","Romola","Romona","Romonda","Romy","Rona","Ronalda","Ronda","Ronica","Ronna","Ronni","Ronnica","Ronnie","Ronny","Roobbie","Rora","Rori","Rorie","Rory","Ros","Rosa","Rosabel","Rosabella","Rosabelle","Rosaleen","Rosalia","Rosalie","Rosalind","Rosalinda","Rosalinde","Rosaline","Rosalyn","Rosalynd","Rosamond","Rosamund","Rosana","Rosanna","Rosanne","Rose","Roseann","Roseanna","Roseanne","Roselia","Roselin","Roseline","Rosella","Roselle","Rosemaria","Rosemarie","Rosemary","Rosemonde","Rosene","Rosetta","Rosette","Roshelle","Rosie","Rosina","Rosita","Roslyn","Rosmunda","Rosy","Row","Rowe","Rowena","Roxana","Roxane","Roxanna","Roxanne","Roxi","Roxie","Roxine","Roxy","Roz","Rozalie","Rozalin","Rozamond","Rozanna","Rozanne","Roze","Rozele","Rozella","Rozelle","Rozina","Rubetta","Rubi","Rubia","Rubie","Rubina","Ruby","Ruperta","Ruth","Ruthann","Ruthanne","Ruthe","Ruthi","Ruthie","Ruthy","Ryann","Rycca","Saba","Sabina","Sabine","Sabra","Sabrina","Sacha","Sada","Sadella","Sadie","Sadye","Saidee","Sal","Salaidh","Sallee","Salli","Sallie","Sally","Sallyann","Sallyanne","Saloma","Salome","Salomi","Sam","Samantha","Samara","Samaria","Sammy","Sande","Sandi","Sandie","Sandra","Sandy","Sandye","Sapphira","Sapphire","Sara","Sara-Ann","Saraann","Sarah","Sarajane","Saree","Sarena","Sarene","Sarette","Sari","Sarina","Sarine","Sarita","Sascha","Sasha","Sashenka","Saudra","Saundra","Savina","Sayre","Scarlet","Scarlett","Sean","Seana","Seka","Sela","Selena","Selene","Selestina","Selia","Selie","Selina","Selinda","Seline","Sella","Selle","Selma","Sena","Sephira","Serena","Serene","Shae","Shaina","Shaine","Shalna","Shalne","Shana","Shanda","Shandee","Shandeigh","Shandie","Shandra","Shandy","Shane","Shani","Shanie","Shanna","Shannah","Shannen","Shannon","Shanon","Shanta","Shantee","Shara","Sharai","Shari","Sharia","Sharity","Sharl","Sharla","Sharleen","Sharlene","Sharline","Sharon","Sharona","Sharron","Sharyl","Shaun","Shauna","Shawn","Shawna","Shawnee","Shay","Shayla","Shaylah","Shaylyn","Shaylynn","Shayna","Shayne","Shea","Sheba","Sheela","Sheelagh","Sheelah","Sheena","Sheeree","Sheila","Sheila-Kathryn","Sheilah","Shel","Shela","Shelagh","Shelba","Shelbi","Shelby","Shelia","Shell","Shelley","Shelli","Shellie","Shelly","Shena","Sher","Sheree","Sheri","Sherie","Sherill","Sherilyn","Sherline","Sherri","Sherrie","Sherry","Sherye","Sheryl","Shina","Shir","Shirl","Shirlee","Shirleen","Shirlene","Shirley","Shirline","Shoshana","Shoshanna","Siana","Sianna","Sib","Sibbie","Sibby","Sibeal","Sibel","Sibella","Sibelle","Sibilla","Sibley","Sibyl","Sibylla","Sibylle","Sidoney","Sidonia","Sidonnie","Sigrid","Sile","Sileas","Silva","Silvana","Silvia","Silvie","Simona","Simone","Simonette","Simonne","Sindee","Siobhan","Sioux","Siouxie","Sisely","Sisile","Sissie","Sissy","Siusan","Sofia","Sofie","Sondra","Sonia","Sonja","Sonni","Sonnie","Sonnnie","Sonny","Sonya","Sophey","Sophi","Sophia","Sophie","Sophronia","Sorcha","Sosanna","Stace","Stacee","Stacey","Staci","Stacia","Stacie","Stacy","Stafani","Star","Starla","Starlene","Starlin","Starr","Stefa","Stefania","Stefanie","Steffane","Steffi","Steffie","Stella","Stepha","Stephana","Stephani","Stephanie","Stephannie","Stephenie","Stephi","Stephie","Stephine","Stesha","Stevana","Stevena","Stoddard","Storm","Stormi","Stormie","Stormy","Sue","Suellen","Sukey","Suki","Sula","Sunny","Sunshine","Susan","Susana","Susanetta","Susann","Susanna","Susannah","Susanne","Susette","Susi","Susie","Susy","Suzann","Suzanna","Suzanne","Suzette","Suzi","Suzie","Suzy","Sybil","Sybila","Sybilla","Sybille","Sybyl","Sydel","Sydelle","Sydney","Sylvia","Tabatha","Tabbatha","Tabbi","Tabbie","Tabbitha","Tabby","Tabina","Tabitha","Taffy","Talia","Tallia","Tallie","Tallou","Tallulah","Tally","Talya","Talyah","Tamar","Tamara","Tamarah","Tamarra","Tamera","Tami","Tamiko","Tamma","Tammara","Tammi","Tammie","Tammy","Tamqrah","Tamra","Tana","Tandi","Tandie","Tandy","Tanhya","Tani","Tania","Tanitansy","Tansy","Tanya","Tara","Tarah","Tarra","Tarrah","Taryn","Tasha","Tasia","Tate","Tatiana","Tatiania","Tatum","Tawnya","Tawsha","Ted","Tedda","Teddi","Teddie","Teddy","Tedi","Tedra","Teena","TEirtza","Teodora","Tera","Teresa","Terese","Teresina","Teresita","Teressa","Teri","Teriann","Terra","Terri","Terrie","Terrijo","Terry","Terrye","Tersina","Terza","Tess","Tessa","Tessi","Tessie","Tessy","Thalia","Thea","Theadora","Theda","Thekla","Thelma","Theo","Theodora","Theodosia","Theresa","Therese","Theresina","Theresita","Theressa","Therine","Thia","Thomasa","Thomasin","Thomasina","Thomasine","Tiena","Tierney","Tiertza","Tiff","Tiffani","Tiffanie","Tiffany","Tiffi","Tiffie","Tiffy","Tilda","Tildi","Tildie","Tildy","Tillie","Tilly","Tim","Timi","Timmi","Timmie","Timmy","Timothea","Tina","Tine","Tiphani","Tiphanie","Tiphany","Tish","Tisha","Tobe","Tobey","Tobi","Toby","Tobye","Toinette","Toma","Tomasina","Tomasine","Tomi","Tommi","Tommie","Tommy","Toni","Tonia","Tonie","Tony","Tonya","Tonye","Tootsie","Torey","Tori","Torie","Torrie","Tory","Tova","Tove","Tracee","Tracey","Traci","Tracie","Tracy","Trenna","Tresa","Trescha","Tressa","Tricia","Trina","Trish","Trisha","Trista","Trix","Trixi","Trixie","Trixy","Truda","Trude","Trudey","Trudi","Trudie","Trudy","Trula","Tuesday","Twila","Twyla","Tybi","Tybie","Tyne","Ula","Ulla","Ulrica","Ulrika","Ulrikaumeko","Ulrike","Umeko","Una","Ursa","Ursala","Ursola","Ursula","Ursulina","Ursuline","Uta","Val","Valaree","Valaria","Vale","Valeda","Valencia","Valene","Valenka","Valentia","Valentina","Valentine","Valera","Valeria","Valerie","Valery","Valerye","Valida","Valina","Valli","Vallie","Vally","Valma","Valry","Van","Vanda","Vanessa","Vania","Vanna","Vanni","Vannie","Vanny","Vanya","Veda","Velma","Velvet","Venita","Venus","Vera","Veradis","Vere","Verena","Verene","Veriee","Verile","Verina","Verine","Verla","Verna","Vernice","Veronica","Veronika","Veronike","Veronique","Vevay","Vi","Vicki","Vickie","Vicky","Victoria","Vida","Viki","Vikki","Vikky","Vilhelmina","Vilma","Vin","Vina","Vinita","Vinni","Vinnie","Vinny","Viola","Violante","Viole","Violet","Violetta","Violette","Virgie","Virgina","Virginia","Virginie","Vita","Vitia","Vitoria","Vittoria","Viv","Viva","Vivi","Vivia","Vivian","Viviana","Vivianna","Vivianne","Vivie","Vivien","Viviene","Vivienne","Viviyan","Vivyan","Vivyanne","Vonni","Vonnie","Vonny","Vyky","Wallie","Wallis","Walliw","Wally","Waly","Wanda","Wandie","Wandis","Waneta","Wanids","Wenda","Wendeline","Wendi","Wendie","Wendy","Wendye","Wenona","Wenonah","Whitney","Wileen","Wilhelmina","Wilhelmine","Wilie","Willa","Willabella","Willamina","Willetta","Willette","Willi","Willie","Willow","Willy","Willyt","Wilma","Wilmette","Wilona","Wilone","Wilow","Windy","Wini","Winifred","Winna","Winnah","Winne","Winni","Winnie","Winnifred","Winny","Winona","Winonah","Wren","Wrennie","Wylma","Wynn","Wynne","Wynnie","Wynny","Xaviera","Xena","Xenia","Xylia","Xylina","Yalonda","Yasmeen","Yasmin","Yelena","Yetta","Yettie","Yetty","Yevette","Ynes","Ynez","Yoko","Yolanda","Yolande","Yolane","Yolanthe","Yoshi","Yoshiko","Yovonnda","Ysabel","Yvette","Yvonne","Zabrina","Zahara","Zandra","Zaneta","Zara","Zarah","Zaria","Zarla","Zea","Zelda","Zelma","Zena","Zenia","Zia","Zilvia","Zita","Zitella","Zoe","Zola","Zonda","Zondra","Zonnya","Zora","Zorah","Zorana","Zorina","Zorine","Zsa","Zsa","Zsazsa","Zulema","Zuzana"]'),ja=JSON.parse('["Aaron","Ab","Abba","Abbe","Abbey","Abbie","Abbot","Abbott","Abby","Abdel","Abdul","Abe","Abel","Abelard","Abeu","Abey","Abie","Abner","Abraham","Abrahan","Abram","Abramo","Abran","Ad","Adair","Adam","Adamo","Adams","Adan","Addie","Addison","Addy","Ade","Adelbert","Adham","Adlai","Adler","Ado","Adolf","Adolph","Adolphe","Adolpho","Adolphus","Adrian","Adriano","Adrien","Agosto","Aguie","Aguistin","Aguste","Agustin","Aharon","Ahmad","Ahmed","Ailbert","Akim","Aksel","Al","Alain","Alair","Alan","Aland","Alano","Alanson","Alard","Alaric","Alasdair","Alastair","Alasteir","Alaster","Alberik","Albert","Alberto","Albie","Albrecht","Alden","Aldin","Aldis","Aldo","Aldon","Aldous","Aldric","Aldrich","Aldridge","Aldus","Aldwin","Alec","Alejandro","Alejoa","Aleksandr","Alessandro","Alex","Alexander","Alexandr","Alexandre","Alexandro","Alexandros","Alexei","Alexio","Alexis","Alf","Alfie","Alfons","Alfonse","Alfonso","Alford","Alfred","Alfredo","Alfy","Algernon","Ali","Alic","Alick","Alisander","Alistair","Alister","Alix","Allan","Allard","Allayne","Allen","Alley","Alleyn","Allie","Allin","Allister","Allistir","Allyn","Aloin","Alon","Alonso","Alonzo","Aloysius","Alphard","Alphonse","Alphonso","Alric","Aluin","Aluino","Alva","Alvan","Alvie","Alvin","Alvis","Alvy","Alwin","Alwyn","Alyosha","Amble","Ambros","Ambrose","Ambrosi","Ambrosio","Ambrosius","Amby","Amerigo","Amery","Amory","Amos","Anatol","Anatole","Anatollo","Ancell","Anders","Anderson","Andie","Andonis","Andras","Andre","Andrea","Andreas","Andrej","Andres","Andrew","Andrey","Andris","Andros","Andrus","Andy","Ange","Angel","Angeli","Angelico","Angelo","Angie","Angus","Ansel","Ansell","Anselm","Anson","Anthony","Antin","Antoine","Anton","Antone","Antoni","Antonin","Antonino","Antonio","Antonius","Antons","Antony","Any","Ara","Araldo","Arch","Archaimbaud","Archambault","Archer","Archibald","Archibaldo","Archibold","Archie","Archy","Arel","Ari","Arie","Ariel","Arin","Ario","Aristotle","Arlan","Arlen","Arley","Arlin","Arman","Armand","Armando","Armin","Armstrong","Arnaldo","Arne","Arney","Arni","Arnie","Arnold","Arnoldo","Arnuad","Arny","Aron","Arri","Arron","Art","Artair","Arte","Artemas","Artemis","Artemus","Arther","Arthur","Artie","Artur","Arturo","Artus","Arty","Arv","Arvie","Arvin","Arvy","Asa","Ase","Ash","Ashbey","Ashby","Asher","Ashley","Ashlin","Ashton","Aube","Auberon","Aubert","Aubrey","Augie","August","Augustin","Augustine","Augusto","Augustus","Augy","Aurthur","Austen","Austin","Ave","Averell","Averil","Averill","Avery","Avictor","Avigdor","Avram","Avrom","Ax","Axe","Axel","Aylmar","Aylmer","Aymer","Bail","Bailey","Bailie","Baillie","Baily","Baird","Bald","Balduin","Baldwin","Bale","Ban","Bancroft","Bank","Banky","Bar","Barbabas","Barclay","Bard","Barde","Barn","Barnabas","Barnabe","Barnaby","Barnard","Barnebas","Barnett","Barney","Barnie","Barny","Baron","Barr","Barret","Barrett","Barri","Barrie","Barris","Barron","Barry","Bart","Bartel","Barth","Barthel","Bartholemy","Bartholomeo","Bartholomeus","Bartholomew","Bartie","Bartlet","Bartlett","Bartolemo","Bartolomeo","Barton","Bartram","Barty","Bary","Baryram","Base","Basil","Basile","Basilio","Basilius","Bastian","Bastien","Bat","Batholomew","Baudoin","Bax","Baxie","Baxter","Baxy","Bay","Bayard","Beale","Bealle","Bear","Bearnard","Beau","Beaufort","Beauregard","Beck","Beltran","Ben","Bendick","Bendicty","Bendix","Benedetto","Benedick","Benedict","Benedicto","Benedikt","Bengt","Beniamino","Benito","Benjamen","Benjamin","Benji","Benjie","Benjy","Benn","Bennett","Bennie","Benny","Benoit","Benson","Bent","Bentlee","Bentley","Benton","Benyamin","Ber","Berk","Berke","Berkeley","Berkie","Berkley","Berkly","Berky","Bern","Bernard","Bernardo","Bernarr","Berne","Bernhard","Bernie","Berny","Bert","Berti","Bertie","Berton","Bertram","Bertrand","Bertrando","Berty","Bev","Bevan","Bevin","Bevon","Bil","Bill","Billie","Billy","Bing","Bink","Binky","Birch","Birk","Biron","Bjorn","Blaine","Blair","Blake","Blane","Blayne","Bo","Bob","Bobbie","Bobby","Bogart","Bogey","Boigie","Bond","Bondie","Bondon","Bondy","Bone","Boniface","Boone","Boonie","Boony","Boot","Boote","Booth","Boothe","Bord","Borden","Bordie","Bordy","Borg","Boris","Bourke","Bowie","Boy","Boyce","Boycey","Boycie","Boyd","Brad","Bradan","Brade","Braden","Bradford","Bradley","Bradly","Bradney","Brady","Bram","Bran","Brand","Branden","Brander","Brandon","Brandtr","Brandy","Brandyn","Brannon","Brant","Brantley","Bren","Brendan","Brenden","Brendin","Brendis","Brendon","Brennan","Brennen","Brent","Bret","Brett","Brew","Brewer","Brewster","Brian","Briano","Briant","Brice","Brien","Brig","Brigg","Briggs","Brigham","Brion","Brit","Britt","Brnaba","Brnaby","Brock","Brockie","Brocky","Brod","Broddie","Broddy","Broderic","Broderick","Brodie","Brody","Brok","Bron","Bronnie","Bronny","Bronson","Brook","Brooke","Brooks","Brose","Bruce","Brucie","Bruis","Bruno","Bryan","Bryant","Bryanty","Bryce","Bryn","Bryon","Buck","Buckie","Bucky","Bud","Budd","Buddie","Buddy","Buiron","Burch","Burg","Burgess","Burk","Burke","Burl","Burlie","Burnaby","Burnard","Burr","Burt","Burtie","Burton","Burty","Butch","Byram","Byran","Byrann","Byrle","Byrom","Byron","Cad","Caddric","Caesar","Cal","Caldwell","Cale","Caleb","Calhoun","Callean","Calv","Calvin","Cam","Cameron","Camey","Cammy","Car","Carce","Care","Carey","Carl","Carleton","Carlie","Carlin","Carling","Carlo","Carlos","Carly","Carlyle","Carmine","Carney","Carny","Carolus","Carr","Carrol","Carroll","Carson","Cart","Carter","Carver","Cary","Caryl","Casar","Case","Casey","Cash","Caspar","Casper","Cass","Cassie","Cassius","Caz","Cazzie","Cchaddie","Cece","Cecil","Cecilio","Cecilius","Ced","Cedric","Cello","Cesar","Cesare","Cesaro","Chad","Chadd","Chaddie","Chaddy","Chadwick","Chaim","Chalmers","Chan","Chance","Chancey","Chandler","Chane","Chariot","Charles","Charley","Charlie","Charlton","Chas","Chase","Chaunce","Chauncey","Che","Chen","Ches","Chester","Cheston","Chet","Chev","Chevalier","Chevy","Chic","Chick","Chickie","Chicky","Chico","Chilton","Chip","Chris","Chrisse","Chrissie","Chrissy","Christian","Christiano","Christie","Christoffer","Christoforo","Christoper","Christoph","Christophe","Christopher","Christophorus","Christos","Christy","Chrisy","Chrotoem","Chucho","Chuck","Cirillo","Cirilo","Ciro","Claiborn","Claiborne","Clair","Claire","Clarance","Clare","Clarence","Clark","Clarke","Claudell","Claudian","Claudianus","Claudio","Claudius","Claus","Clay","Clayborn","Clayborne","Claybourne","Clayson","Clayton","Cleavland","Clem","Clemens","Clement","Clemente","Clementius","Clemmie","Clemmy","Cleon","Clerc","Cletis","Cletus","Cleve","Cleveland","Clevey","Clevie","Cliff","Clifford","Clim","Clint","Clive","Cly","Clyde","Clyve","Clywd","Cob","Cobb","Cobbie","Cobby","Codi","Codie","Cody","Cointon","Colan","Colas","Colby","Cole","Coleman","Colet","Colin","Collin","Colman","Colver","Con","Conan","Conant","Conn","Conney","Connie","Connor","Conny","Conrad","Conrade","Conrado","Conroy","Consalve","Constantin","Constantine","Constantino","Conway","Coop","Cooper","Corbet","Corbett","Corbie","Corbin","Corby","Cord","Cordell","Cordie","Cordy","Corey","Cori","Cornall","Cornelius","Cornell","Corney","Cornie","Corny","Correy","Corrie","Cort","Cortie","Corty","Cory","Cos","Cosimo","Cosme","Cosmo","Costa","Court","Courtnay","Courtney","Cozmo","Craggie","Craggy","Craig","Crawford","Creigh","Creight","Creighton","Crichton","Cris","Cristian","Cristiano","Cristobal","Crosby","Cross","Cull","Cullan","Cullen","Culley","Cullie","Cullin","Cully","Culver","Curcio","Curr","Curran","Currey","Currie","Curry","Curt","Curtice","Curtis","Cy","Cyril","Cyrill","Cyrille","Cyrillus","Cyrus","Darcy","Dael","Dag","Dagny","Dal","Dale","Dalis","Dall","Dallas","Dalli","Dallis","Dallon","Dalston","Dalt","Dalton","Dame","Damian","Damiano","Damien","Damon","Dan","Dana","Dane","Dani","Danie","Daniel","Dannel","Dannie","Danny","Dante","Danya","Dar","Darb","Darbee","Darby","Darcy","Dare","Daren","Darill","Darin","Dario","Darius","Darn","Darnall","Darnell","Daron","Darrel","Darrell","Darren","Darrick","Darrin","Darryl","Darwin","Daryl","Daryle","Dav","Dave","Daven","Davey","David","Davidde","Davide","Davidson","Davie","Davin","Davis","Davon","Davy","De","Witt","Dean","Deane","Decca","Deck","Del","Delainey","Delaney","Delano","Delbert","Dell","Delmar","Delmer","Delmor","Delmore","Demetre","Demetri","Demetris","Demetrius","Demott","Den","Dene","Denis","Dennet","Denney","Dennie","Dennis","Dennison","Denny","Denver","Denys","Der","Derby","Derek","Derick","Derk","Dermot","Derrek","Derrick","Derrik","Derril","Derron","Derry","Derward","Derwin","Des","Desi","Desmond","Desmund","Dev","Devin","Devland","Devlen","Devlin","Devy","Dew","Dewain","Dewey","Dewie","Dewitt","Dex","Dexter","Diarmid","Dick","Dickie","Dicky","Diego","Dieter","Dietrich","Dilan","Dill","Dillie","Dillon","Dilly","Dimitri","Dimitry","Dino","Dion","Dionisio","Dionysus","Dirk","Dmitri","Dolf","Dolph","Dom","Domenic","Domenico","Domingo","Dominic","Dominick","Dominik","Dominique","Don","Donal","Donall","Donalt","Donaugh","Donavon","Donn","Donnell","Donnie","Donny","Donovan","Dore","Dorey","Dorian","Dorie","Dory","Doug","Dougie","Douglas","Douglass","Dougy","Dov","Doy","Doyle","Drake","Drew","Dru","Drud","Drugi","Duane","Dud","Dudley","Duff","Duffie","Duffy","Dugald","Duke","Dukey","Dukie","Duky","Dun","Dunc","Duncan","Dunn","Dunstan","Dur","Durand","Durant","Durante","Durward","Dwain","Dwayne","Dwight","Dylan","Eadmund","Eal","Eamon","Earl","Earle","Earlie","Early","Earvin","Eb","Eben","Ebeneser","Ebenezer","Eberhard","Eberto","Ed","Edan","Edd","Eddie","Eddy","Edgar","Edgard","Edgardo","Edik","Edlin","Edmon","Edmund","Edouard","Edsel","Eduard","Eduardo","Eduino","Edvard","Edward","Edwin","Efrem","Efren","Egan","Egbert","Egon","Egor","El","Elbert","Elden","Eldin","Eldon","Eldredge","Eldridge","Eli","Elia","Elias","Elihu","Elijah","Eliot","Elisha","Ellary","Ellerey","Ellery","Elliot","Elliott","Ellis","Ellswerth","Ellsworth","Ellwood","Elmer","Elmo","Elmore","Elnar","Elroy","Elston","Elsworth","Elton","Elvin","Elvis","Elvyn","Elwin","Elwood","Elwyn","Ely","Em","Emanuel","Emanuele","Emelen","Emerson","Emery","Emile","Emilio","Emlen","Emlyn","Emmanuel","Emmerich","Emmery","Emmet","Emmett","Emmit","Emmott","Emmy","Emory","Engelbert","Englebert","Ennis","Enoch","Enos","Enrico","Enrique","Ephraim","Ephrayim","Ephrem","Erasmus","Erastus","Erek","Erhard","Erhart","Eric","Erich","Erick","Erie","Erik","Erin","Erl","Ermanno","Ermin","Ernest","Ernesto","Ernestus","Ernie","Ernst","Erny","Errick","Errol","Erroll","Erskine","Erv","ErvIn","Erwin","Esdras","Esme","Esra","Esteban","Estevan","Etan","Ethan","Ethe","Ethelbert","Ethelred","Etienne","Ettore","Euell","Eugen","Eugene","Eugenio","Eugenius","Eustace","Ev","Evan","Evelin","Evelyn","Even","Everard","Evered","Everett","Evin","Evyn","Ewan","Eward","Ewart","Ewell","Ewen","Ezechiel","Ezekiel","Ezequiel","Eziechiele","Ezra","Ezri","Fabe","Faber","Fabian","Fabiano","Fabien","Fabio","Fair","Fairfax","Fairleigh","Fairlie","Falito","Falkner","Far","Farlay","Farlee","Farleigh","Farley","Farlie","Farly","Farr","Farrel","Farrell","Farris","Faulkner","Fax","Federico","Fee","Felic","Felice","Felicio","Felike","Feliks","Felipe","Felix","Felizio","Feodor","Ferd","Ferdie","Ferdinand","Ferdy","Fergus","Ferguson","Fernando","Ferrel","Ferrell","Ferris","Fidel","Fidelio","Fidole","Field","Fielding","Fields","Filbert","Filberte","Filberto","Filip","Filippo","Filmer","Filmore","Fin","Findlay","Findley","Finlay","Finley","Finn","Fitz","Fitzgerald","Flem","Fleming","Flemming","Fletch","Fletcher","Flin","Flinn","Flint","Florian","Flory","Floyd","Flynn","Fons","Fonsie","Fonz","Fonzie","Forbes","Ford","Forest","Forester","Forrest","Forrester","Forster","Foss","Foster","Fowler","Fran","Francesco","Franchot","Francis","Francisco","Franciskus","Francklin","Francklyn","Francois","Frank","Frankie","Franklin","Franklyn","Franky","Frannie","Franny","Frans","Fransisco","Frants","Franz","Franzen","Frasco","Fraser","Frasier","Frasquito","Fraze","Frazer","Frazier","Fred","Freddie","Freddy","Fredek","Frederic","Frederich","Frederick","Frederico","Frederigo","Frederik","Fredric","Fredrick","Free","Freedman","Freeland","Freeman","Freemon","Fremont","Friedrich","Friedrick","Fritz","Fulton","Gabbie","Gabby","Gabe","Gabi","Gabie","Gabriel","Gabriele","Gabriello","Gaby","Gael","Gaelan","Gage","Gail","Gaile","Gal","Gale","Galen","Gallagher","Gallard","Galvan","Galven","Galvin","Gamaliel","Gan","Gannie","Gannon","Ganny","Gar","Garald","Gard","Gardener","Gardie","Gardiner","Gardner","Gardy","Gare","Garek","Gareth","Garey","Garfield","Garik","Garner","Garold","Garrard","Garrek","Garret","Garreth","Garrett","Garrick","Garrik","Garrot","Garrott","Garry","Garth","Garv","Garvey","Garvin","Garvy","Garwin","Garwood","Gary","Gaspar","Gaspard","Gasparo","Gasper","Gaston","Gaultiero","Gauthier","Gav","Gavan","Gaven","Gavin","Gawain","Gawen","Gay","Gayelord","Gayle","Gayler","Gaylor","Gaylord","Gearalt","Gearard","Gene","Geno","Geoff","Geoffrey","Geoffry","Georas","Geordie","Georg","George","Georges","Georgi","Georgie","Georgy","Gerald","Gerard","Gerardo","Gerek","Gerhard","Gerhardt","Geri","Gerick","Gerik","Germain","Germaine","Germayne","Gerome","Gerrard","Gerri","Gerrie","Gerry","Gery","Gherardo","Giacobo","Giacomo","Giacopo","Gian","Gianni","Giavani","Gib","Gibb","Gibbie","Gibby","Gideon","Giff","Giffard","Giffer","Giffie","Gifford","Giffy","Gil","Gilbert","Gilberto","Gilburt","Giles","Gill","Gilles","Ginger","Gino","Giordano","Giorgi","Giorgio","Giovanni","Giraldo","Giraud","Giselbert","Giulio","Giuseppe","Giustino","Giusto","Glen","Glenden","Glendon","Glenn","Glyn","Glynn","Godard","Godart","Goddard","Goddart","Godfree","Godfrey","Godfry","Godwin","Gonzales","Gonzalo","Goober","Goran","Goraud","Gordan","Gorden","Gordie","Gordon","Gordy","Gothart","Gottfried","Grace","Gradeigh","Gradey","Grady","Graehme","Graeme","Graham","Graig","Gram","Gran","Grange","Granger","Grannie","Granny","Grant","Grantham","Granthem","Grantley","Granville","Gray","Greg","Gregg","Greggory","Gregoire","Gregoor","Gregor","Gregorio","Gregorius","Gregory","Grenville","Griff","Griffie","Griffin","Griffith","Griffy","Gris","Griswold","Griz","Grove","Grover","Gualterio","Guglielmo","Guido","Guilbert","Guillaume","Guillermo","Gun","Gunar","Gunner","Guntar","Gunter","Gunther","Gus","Guss","Gustaf","Gustav","Gustave","Gustavo","Gustavus","Guthrey","Guthrie","Guthry","Guy","Had","Hadlee","Hadleigh","Hadley","Hadrian","Hagan","Hagen","Hailey","Haily","Hakeem","Hakim","Hal","Hale","Haleigh","Haley","Hall","Hallsy","Halsey","Halsy","Ham","Hamel","Hamid","Hamil","Hamilton","Hamish","Hamlen","Hamlin","Hammad","Hamnet","Hanan","Hank","Hans","Hansiain","Hanson","Harald","Harbert","Harcourt","Hardy","Harlan","Harland","Harlen","Harley","Harlin","Harman","Harmon","Harold","Haroun","Harp","Harper","Harris","Harrison","Harry","Hart","Hartley","Hartwell","Harv","Harvey","Harwell","Harwilll","Hasheem","Hashim","Haskel","Haskell","Haslett","Hastie","Hastings","Hasty","Haven","Hayden","Haydon","Hayes","Hayward","Haywood","Hayyim","Haze","Hazel","Hazlett","Heall","Heath","Hebert","Hector","Heindrick","Heinrick","Heinrik","Henderson","Hendrick","Hendrik","Henri","Henrik","Henry","Herb","Herbert","Herbie","Herby","Herc","Hercule","Hercules","Herculie","Heriberto","Herman","Hermann","Hermie","Hermon","Hermy","Hernando","Herold","Herrick","Hersch","Herschel","Hersh","Hershel","Herve","Hervey","Hew","Hewe","Hewet","Hewett","Hewie","Hewitt","Heywood","Hi","Hieronymus","Hilario","Hilarius","Hilary","Hill","Hillard","Hillary","Hillel","Hillery","Hilliard","Hillie","Hillier","Hilly","Hillyer","Hilton","Hinze","Hiram","Hirsch","Hobard","Hobart","Hobey","Hobie","Hodge","Hoebart","Hogan","Holden","Hollis","Holly","Holmes","Holt","Homer","Homere","Homerus","Horace","Horacio","Horatio","Horatius","Horst","Hort","Horten","Horton","Howard","Howey","Howie","Hoyt","Hube","Hubert","Huberto","Hubey","Hubie","Huey","Hugh","Hughie","Hugibert","Hugo","Hugues","Humbert","Humberto","Humfrey","Humfrid","Humfried","Humphrey","Hunfredo","Hunt","Hunter","Huntington","Huntlee","Huntley","Hurlee","Hurleigh","Hurley","Husain","Husein","Hussein","Hy","Hyatt","Hyman","Hymie","Iago","Iain","Ian","Ibrahim","Ichabod","Iggie","Iggy","Ignace","Ignacio","Ignacius","Ignatius","Ignaz","Ignazio","Igor","Ike","Ikey","Ilaire","Ilario","Immanuel","Ingamar","Ingar","Ingelbert","Ingemar","Inger","Inglebert","Inglis","Ingmar","Ingra","Ingram","Ingrim","Inigo","Inness","Innis","Iorgo","Iorgos","Iosep","Ira","Irv","Irvin","Irvine","Irving","Irwin","Irwinn","Isa","Isaac","Isaak","Isac","Isacco","Isador","Isadore","Isaiah","Isak","Isiahi","Isidor","Isidore","Isidoro","Isidro","Israel","Issiah","Itch","Ivan","Ivar","Ive","Iver","Ives","Ivor","Izaak","Izak","Izzy","Jabez","Jack","Jackie","Jackson","Jacky","Jacob","Jacobo","Jacques","Jae","Jaime","Jaimie","Jake","Jakie","Jakob","Jamaal","Jamal","James","Jameson","Jamesy","Jamey","Jamie","Jamil","Jamill","Jamison","Jammal","Jan","Janek","Janos","Jarad","Jard","Jareb","Jared","Jarib","Jarid","Jarrad","Jarred","Jarret","Jarrett","Jarrid","Jarrod","Jarvis","Jase","Jasen","Jason","Jasper","Jasun","Javier","Jay","Jaye","Jayme","Jaymie","Jayson","Jdavie","Jean","Jecho","Jed","Jedd","Jeddy","Jedediah","Jedidiah","Jeff","Jefferey","Jefferson","Jeffie","Jeffrey","Jeffry","Jeffy","Jehu","Jeno","Jens","Jephthah","Jerad","Jerald","Jeramey","Jeramie","Jere","Jereme","Jeremiah","Jeremias","Jeremie","Jeremy","Jermain","Jermaine","Jermayne","Jerome","Jeromy","Jerri","Jerrie","Jerrold","Jerrome","Jerry","Jervis","Jess","Jesse","Jessee","Jessey","Jessie","Jesus","Jeth","Jethro","Jim","Jimmie","Jimmy","Jo","Joachim","Joaquin","Job","Jock","Jocko","Jodi","Jodie","Jody","Joe","Joel","Joey","Johan","Johann","Johannes","John","Johnathan","Johnathon","Johnnie","Johnny","Johny","Jon","Jonah","Jonas","Jonathan","Jonathon","Jone","Jordan","Jordon","Jorgan","Jorge","Jory","Jose","Joseito","Joseph","Josh","Joshia","Joshua","Joshuah","Josiah","Josias","Jourdain","Jozef","Juan","Jud","Judah","Judas","Judd","Jude","Judon","Jule","Jules","Julian","Julie","Julio","Julius","Justen","Justin","Justinian","Justino","Justis","Justus","Kahaleel","Kahlil","Kain","Kaine","Kaiser","Kale","Kaleb","Kalil","Kalle","Kalvin","Kane","Kareem","Karel","Karim","Karl","Karlan","Karlens","Karlik","Karlis","Karney","Karoly","Kaspar","Kasper","Kayne","Kean","Keane","Kearney","Keary","Keefe","Keefer","Keelby","Keen","Keenan","Keene","Keir","Keith","Kelbee","Kelby","Kele","Kellby","Kellen","Kelley","Kelly","Kelsey","Kelvin","Kelwin","Ken","Kendal","Kendall","Kendell","Kendrick","Kendricks","Kenn","Kennan","Kennedy","Kenneth","Kennett","Kennie","Kennith","Kenny","Kenon","Kent","Kenton","Kenyon","Ker","Kerby","Kerk","Kermie","Kermit","Kermy","Kerr","Kerry","Kerwin","Kerwinn","Kev","Kevan","Keven","Kevin","Kevon","Khalil","Kiel","Kienan","Kile","Kiley","Kilian","Killian","Killie","Killy","Kim","Kimball","Kimbell","Kimble","Kin","Kincaid","King","Kingsley","Kingsly","Kingston","Kinnie","Kinny","Kinsley","Kip","Kipp","Kippar","Kipper","Kippie","Kippy","Kirby","Kirk","Kit","Klaus","Klemens","Klement","Kleon","Kliment","Knox","Koenraad","Konrad","Konstantin","Konstantine","Korey","Kort","Kory","Kris","Krisha","Krishna","Krishnah","Krispin","Kristian","Kristo","Kristofer","Kristoffer","Kristofor","Kristoforo","Kristopher","Kristos","Kurt","Kurtis","Ky","Kyle","Kylie","Laird","Lalo","Lamar","Lambert","Lammond","Lamond","Lamont","Lance","Lancelot","Land","Lane","Laney","Langsdon","Langston","Lanie","Lannie","Lanny","Larry","Lars","Laughton","Launce","Lauren","Laurence","Laurens","Laurent","Laurie","Lauritz","Law","Lawrence","Lawry","Lawton","Lay","Layton","Lazar","Lazare","Lazaro","Lazarus","Lee","Leeland","Lefty","Leicester","Leif","Leigh","Leighton","Lek","Leland","Lem","Lemar","Lemmie","Lemmy","Lemuel","Lenard","Lenci","Lennard","Lennie","Leo","Leon","Leonard","Leonardo","Leonerd","Leonhard","Leonid","Leonidas","Leopold","Leroi","Leroy","Les","Lesley","Leslie","Lester","Leupold","Lev","Levey","Levi","Levin","Levon","Levy","Lew","Lewes","Lewie","Lewiss","Lezley","Liam","Lief","Lin","Linc","Lincoln","Lind","Lindon","Lindsay","Lindsey","Lindy","Link","Linn","Linoel","Linus","Lion","Lionel","Lionello","Lisle","Llewellyn","Lloyd","Llywellyn","Lock","Locke","Lockwood","Lodovico","Logan","Lombard","Lon","Lonnard","Lonnie","Lonny","Lorant","Loren","Lorens","Lorenzo","Lorin","Lorne","Lorrie","Lorry","Lothaire","Lothario","Lou","Louie","Louis","Lovell","Lowe","Lowell","Lowrance","Loy","Loydie","Luca","Lucais","Lucas","Luce","Lucho","Lucian","Luciano","Lucias","Lucien","Lucio","Lucius","Ludovico","Ludvig","Ludwig","Luigi","Luis","Lukas","Luke","Lutero","Luther","Ly","Lydon","Lyell","Lyle","Lyman","Lyn","Lynn","Lyon","Mac","Mace","Mack","Mackenzie","Maddie","Maddy","Madison","Magnum","Mahmoud","Mahmud","Maison","Maje","Major","Mal","Malachi","Malchy","Malcolm","Mallory","Malvin","Man","Mandel","Manfred","Mannie","Manny","Mano","Manolo","Manuel","Mar","Marc","Marcel","Marcello","Marcellus","Marcelo","Marchall","Marco","Marcos","Marcus","Marijn","Mario","Marion","Marius","Mark","Markos","Markus","Marlin","Marlo","Marlon","Marlow","Marlowe","Marmaduke","Marsh","Marshal","Marshall","Mart","Martainn","Marten","Martie","Martin","Martino","Marty","Martyn","Marv","Marve","Marven","Marvin","Marwin","Mason","Massimiliano","Massimo","Mata","Mateo","Mathe","Mathew","Mathian","Mathias","Matias","Matt","Matteo","Matthaeus","Mattheus","Matthew","Matthias","Matthieu","Matthiew","Matthus","Mattias","Mattie","Matty","Maurice","Mauricio","Maurie","Maurise","Maurits","Maurizio","Maury","Max","Maxie","Maxim","Maximilian","Maximilianus","Maximilien","Maximo","Maxwell","Maxy","Mayer","Maynard","Mayne","Maynord","Mayor","Mead","Meade","Meier","Meir","Mel","Melvin","Melvyn","Menard","Mendel","Mendie","Mendy","Meredeth","Meredith","Merell","Merill","Merle","Merrel","Merrick","Merrill","Merry","Merv","Mervin","Merwin","Merwyn","Meryl","Meyer","Mic","Micah","Michael","Michail","Michal","Michale","Micheal","Micheil","Michel","Michele","Mick","Mickey","Mickie","Micky","Miguel","Mikael","Mike","Mikel","Mikey","Mikkel","Mikol","Mile","Miles","Mill","Millard","Miller","Milo","Milt","Miltie","Milton","Milty","Miner","Minor","Mischa","Mitch","Mitchael","Mitchel","Mitchell","Moe","Mohammed","Mohandas","Mohandis","Moise","Moises","Moishe","Monro","Monroe","Montague","Monte","Montgomery","Monti","Monty","Moore","Mord","Mordecai","Mordy","Morey","Morgan","Morgen","Morgun","Morie","Moritz","Morlee","Morley","Morly","Morrie","Morris","Morry","Morse","Mort","Morten","Mortie","Mortimer","Morton","Morty","Mose","Moses","Moshe","Moss","Mozes","Muffin","Muhammad","Munmro","Munroe","Murdoch","Murdock","Murray","Murry","Murvyn","My","Myca","Mycah","Mychal","Myer","Myles","Mylo","Myron","Myrvyn","Myrwyn","Nahum","Nap","Napoleon","Nappie","Nappy","Nat","Natal","Natale","Nataniel","Nate","Nathan","Nathanael","Nathanial","Nathaniel","Nathanil","Natty","Neal","Neale","Neall","Nealon","Nealson","Nealy","Ned","Neddie","Neddy","Neel","Nefen","Nehemiah","Neil","Neill","Neils","Nels","Nelson","Nero","Neron","Nester","Nestor","Nev","Nevil","Nevile","Neville","Nevin","Nevins","Newton","Nial","Niall","Niccolo","Nicholas","Nichole","Nichols","Nick","Nickey","Nickie","Nicko","Nickola","Nickolai","Nickolas","Nickolaus","Nicky","Nico","Nicol","Nicola","Nicolai","Nicolais","Nicolas","Nicolis","Niel","Niels","Nigel","Niki","Nikita","Nikki","Niko","Nikola","Nikolai","Nikolaos","Nikolas","Nikolaus","Nikolos","Nikos","Nil","Niles","Nils","Nilson","Niven","Noach","Noah","Noak","Noam","Nobe","Nobie","Noble","Noby","Noe","Noel","Nolan","Noland","Noll","Nollie","Nolly","Norbert","Norbie","Norby","Norman","Normand","Normie","Normy","Norrie","Norris","Norry","North","Northrop","Northrup","Norton","Nowell","Nye","Oates","Obadiah","Obadias","Obed","Obediah","Oberon","Obidiah","Obie","Oby","Octavius","Ode","Odell","Odey","Odie","Odo","Ody","Ogdan","Ogden","Ogdon","Olag","Olav","Ole","Olenolin","Olin","Oliver","Olivero","Olivier","Oliviero","Ollie","Olly","Olvan","Omar","Omero","Onfre","Onfroi","Onofredo","Oran","Orazio","Orbadiah","Oren","Orin","Orion","Orlan","Orland","Orlando","Orran","Orren","Orrin","Orson","Orton","Orv","Orville","Osbert","Osborn","Osborne","Osbourn","Osbourne","Osgood","Osmond","Osmund","Ossie","Oswald","Oswell","Otes","Othello","Otho","Otis","Otto","Owen","Ozzie","Ozzy","Pablo","Pace","Packston","Paco","Pacorro","Paddie","Paddy","Padget","Padgett","Padraic","Padraig","Padriac","Page","Paige","Pail","Pall","Palm","Palmer","Panchito","Pancho","Paolo","Papageno","Paquito","Park","Parke","Parker","Parnell","Parrnell","Parry","Parsifal","Pascal","Pascale","Pasquale","Pat","Pate","Paten","Patin","Paton","Patric","Patrice","Patricio","Patrick","Patrizio","Patrizius","Patsy","Patten","Pattie","Pattin","Patton","Patty","Paul","Paulie","Paulo","Pauly","Pavel","Pavlov","Paxon","Paxton","Payton","Peadar","Pearce","Pebrook","Peder","Pedro","Peirce","Pembroke","Pen","Penn","Pennie","Penny","Penrod","Pepe","Pepillo","Pepito","Perceval","Percival","Percy","Perice","Perkin","Pernell","Perren","Perry","Pete","Peter","Peterus","Petey","Petr","Peyter","Peyton","Phil","Philbert","Philip","Phillip","Phillipe","Phillipp","Phineas","Phip","Pierce","Pierre","Pierson","Pieter","Pietrek","Pietro","Piggy","Pincas","Pinchas","Pincus","Piotr","Pip","Pippo","Pooh","Port","Porter","Portie","Porty","Poul","Powell","Pren","Prent","Prentice","Prentiss","Prescott","Preston","Price","Prince","Prinz","Pryce","Puff","Purcell","Putnam","Putnem","Pyotr","Quent","Quentin","Quill","Quillan","Quincey","Quincy","Quinlan","Quinn","Quint","Quintin","Quinton","Quintus","Rab","Rabbi","Rabi","Rad","Radcliffe","Raddie","Raddy","Rafael","Rafaellle","Rafaello","Rafe","Raff","Raffaello","Raffarty","Rafferty","Rafi","Ragnar","Raimondo","Raimund","Raimundo","Rainer","Raleigh","Ralf","Ralph","Ram","Ramon","Ramsay","Ramsey","Rance","Rancell","Rand","Randal","Randall","Randell","Randi","Randie","Randolf","Randolph","Randy","Ransell","Ransom","Raoul","Raphael","Raul","Ravi","Ravid","Raviv","Rawley","Ray","Raymond","Raymund","Raynard","Rayner","Raynor","Read","Reade","Reagan","Reagen","Reamonn","Red","Redd","Redford","Reece","Reed","Rees","Reese","Reg","Regan","Regen","Reggie","Reggis","Reggy","Reginald","Reginauld","Reid","Reidar","Reider","Reilly","Reinald","Reinaldo","Reinaldos","Reinhard","Reinhold","Reinold","Reinwald","Rem","Remington","Remus","Renado","Renaldo","Renard","Renato","Renaud","Renault","Rene","Reube","Reuben","Reuven","Rex","Rey","Reynard","Reynold","Reynolds","Rhett","Rhys","Ric","Ricard","Ricardo","Riccardo","Rice","Rich","Richard","Richardo","Richart","Richie","Richmond","Richmound","Richy","Rick","Rickard","Rickert","Rickey","Ricki","Rickie","Ricky","Ricoriki","Rik","Rikki","Riley","Rinaldo","Ring","Ringo","Riobard","Riordan","Rip","Ripley","Ritchie","Roarke","Rob","Robb","Robbert","Robbie","Robby","Robers","Robert","Roberto","Robin","Robinet","Robinson","Rochester","Rock","Rockey","Rockie","Rockwell","Rocky","Rod","Rodd","Roddie","Roddy","Roderic","Roderich","Roderick","Roderigo","Rodge","Rodger","Rodney","Rodolfo","Rodolph","Rodolphe","Rodrick","Rodrigo","Rodrique","Rog","Roger","Rogerio","Rogers","Roi","Roland","Rolando","Roldan","Roley","Rolf","Rolfe","Rolland","Rollie","Rollin","Rollins","Rollo","Rolph","Roma","Romain","Roman","Romeo","Ron","Ronald","Ronnie","Ronny","Rooney","Roosevelt","Rorke","Rory","Rosco","Roscoe","Ross","Rossie","Rossy","Roth","Rourke","Rouvin","Rowan","Rowen","Rowland","Rowney","Roy","Royal","Royall","Royce","Rriocard","Rube","Ruben","Rubin","Ruby","Rudd","Ruddie","Ruddy","Rudie","Rudiger","Rudolf","Rudolfo","Rudolph","Rudy","Rudyard","Rufe","Rufus","Ruggiero","Rupert","Ruperto","Ruprecht","Rurik","Russ","Russell","Rustie","Rustin","Rusty","Rutger","Rutherford","Rutledge","Rutter","Ruttger","Ruy","Ryan","Ryley","Ryon","Ryun","Sal","Saleem","Salem","Salim","Salmon","Salomo","Salomon","Salomone","Salvador","Salvatore","Salvidor","Sam","Sammie","Sammy","Sampson","Samson","Samuel","Samuele","Sancho","Sander","Sanders","Sanderson","Sandor","Sandro","Sandy","Sanford","Sanson","Sansone","Sarge","Sargent","Sascha","Sasha","Saul","Sauncho","Saunder","Saunders","Saunderson","Saundra","Sauveur","Saw","Sawyer","Sawyere","Sax","Saxe","Saxon","Say","Sayer","Sayers","Sayre","Sayres","Scarface","Schuyler","Scot","Scott","Scotti","Scottie","Scotty","Seamus","Sean","Sebastian","Sebastiano","Sebastien","See","Selby","Selig","Serge","Sergeant","Sergei","Sergent","Sergio","Seth","Seumas","Seward","Seymour","Shadow","Shae","Shaine","Shalom","Shamus","Shanan","Shane","Shannan","Shannon","Shaughn","Shaun","Shaw","Shawn","Shay","Shayne","Shea","Sheff","Sheffie","Sheffield","Sheffy","Shelby","Shelden","Shell","Shelley","Shelton","Shem","Shep","Shepard","Shepherd","Sheppard","Shepperd","Sheridan","Sherlock","Sherlocke","Sherm","Sherman","Shermie","Shermy","Sherwin","Sherwood","Sherwynd","Sholom","Shurlock","Shurlocke","Shurwood","Si","Sibyl","Sid","Sidnee","Sidney","Siegfried","Siffre","Sig","Sigfrid","Sigfried","Sigismond","Sigismondo","Sigismund","Sigismundo","Sigmund","Sigvard","Silas","Silvain","Silvan","Silvano","Silvanus","Silvester","Silvio","Sim","Simeon","Simmonds","Simon","Simone","Sinclair","Sinclare","Siward","Skell","Skelly","Skip","Skipp","Skipper","Skippie","Skippy","Skipton","Sky","Skye","Skylar","Skyler","Slade","Sloan","Sloane","Sly","Smith","Smitty","Sol","Sollie","Solly","Solomon","Somerset","Son","Sonnie","Sonny","Spence","Spencer","Spense","Spenser","Spike","Stacee","Stacy","Staffard","Stafford","Staford","Stan","Standford","Stanfield","Stanford","Stanislas","Stanislaus","Stanislaw","Stanleigh","Stanley","Stanly","Stanton","Stanwood","Stavro","Stavros","Stearn","Stearne","Stefan","Stefano","Steffen","Stephan","Stephanus","Stephen","Sterling","Stern","Sterne","Steve","Steven","Stevie","Stevy","Steward","Stewart","Stillman","Stillmann","Stinky","Stirling","Stu","Stuart","Sullivan","Sully","Sumner","Sunny","Sutherlan","Sutherland","Sutton","Sven","Svend","Swen","Syd","Sydney","Sylas","Sylvan","Sylvester","Syman","Symon","Tab","Tabb","Tabbie","Tabby","Taber","Tabor","Tad","Tadd","Taddeo","Taddeusz","Tadeas","Tadeo","Tades","Tadio","Tailor","Tait","Taite","Talbert","Talbot","Tallie","Tally","Tam","Tamas","Tammie","Tammy","Tan","Tann","Tanner","Tanney","Tannie","Tanny","Tarrance","Tate","Taylor","Teador","Ted","Tedd","Teddie","Teddy","Tedie","Tedman","Tedmund","Temp","Temple","Templeton","Teodoor","Teodor","Teodorico","Teodoro","Terence","Terencio","Terrance","Terrel","Terrell","Terrence","Terri","Terrill","Terry","Thacher","Thaddeus","Thaddus","Thadeus","Thain","Thaine","Thane","Thatch","Thatcher","Thaxter","Thayne","Thebault","Thedric","Thedrick","Theo","Theobald","Theodor","Theodore","Theodoric","Thibaud","Thibaut","Thom","Thoma","Thomas","Thor","Thorin","Thorn","Thorndike","Thornie","Thornton","Thorny","Thorpe","Thorstein","Thorsten","Thorvald","Thurstan","Thurston","Tibold","Tiebold","Tiebout","Tiler","Tim","Timmie","Timmy","Timofei","Timoteo","Timothee","Timotheus","Timothy","Tirrell","Tito","Titos","Titus","Tobe","Tobiah","Tobias","Tobie","Tobin","Tobit","Toby","Tod","Todd","Toddie","Toddy","Toiboid","Tom","Tomas","Tomaso","Tome","Tomkin","Tomlin","Tommie","Tommy","Tonnie","Tony","Tore","Torey","Torin","Torr","Torrance","Torre","Torrence","Torrey","Torrin","Torry","Town","Towney","Townie","Townsend","Towny","Trace","Tracey","Tracie","Tracy","Traver","Travers","Travis","Travus","Trefor","Tremain","Tremaine","Tremayne","Trent","Trenton","Trev","Trevar","Trever","Trevor","Trey","Trip","Tripp","Tris","Tristam","Tristan","Troy","Trstram","Trueman","Trumaine","Truman","Trumann","Tuck","Tucker","Tuckie","Tucky","Tudor","Tull","Tulley","Tully","Turner","Ty","Tybalt","Tye","Tyler","Tymon","Tymothy","Tynan","Tyrone","Tyrus","Tyson","Udale","Udall","Udell","Ugo","Ulberto","Ulick","Ulises","Ulric","Ulrich","Ulrick","Ulysses","Umberto","Upton","Urbain","Urban","Urbano","Urbanus","Uri","Uriah","Uriel","Urson","Vachel","Vaclav","Vail","Val","Valdemar","Vale","Valentijn","Valentin","Valentine","Valentino","Valle","Van","Vance","Vanya","Vasili","Vasilis","Vasily","Vassili","Vassily","Vaughan","Vaughn","Verge","Vergil","Vern","Verne","Vernen","Verney","Vernon","Vernor","Vic","Vick","Victoir","Victor","Vidovic","Vidovik","Vin","Vince","Vincent","Vincents","Vincenty","Vincenz","Vinnie","Vinny","Vinson","Virge","Virgie","Virgil","Virgilio","Vite","Vito","Vittorio","Vlad","Vladamir","Vladimir","Von","Wade","Wadsworth","Wain","Wainwright","Wait","Waite","Waiter","Wake","Wakefield","Wald","Waldemar","Walden","Waldo","Waldon","Walker","Wallace","Wallache","Wallas","Wallie","Wallis","Wally","Walsh","Walt","Walther","Walton","Wang","Ward","Warde","Warden","Ware","Waring","Warner","Warren","Wash","Washington","Wat","Waverley","Waverly","Way","Waylan","Wayland","Waylen","Waylin","Waylon","Wayne","Web","Webb","Weber","Webster","Weidar","Weider","Welbie","Welby","Welch","Wells","Welsh","Wendall","Wendel","Wendell","Werner","Wernher","Wes","Wesley","West","Westbrook","Westbrooke","Westleigh","Westley","Weston","Weylin","Wheeler","Whit","Whitaker","Whitby","Whitman","Whitney","Whittaker","Wiatt","Wilbert","Wilbur","Wilburt","Wilden","Wildon","Wilek","Wiley","Wilfred","Wilfrid","Wilhelm","Will","Willard","Willdon","Willem","Willey","Willi","William","Willie","Willis","Willy","Wilmar","Wilmer","Wilt","Wilton","Win","Windham","Winfield","Winfred","Winifield","Winn","Winnie","Winny","Winslow","Winston","Winthrop","Wit","Wittie","Witty","Wolf","Wolfgang","Wolfie","Wolfy","Wood","Woodie","Woodman","Woodrow","Woody","Worden","Worth","Worthington","Worthy","Wright","Wyatan","Wyatt","Wye","Wylie","Wyn","Wyndham","Wynn","Xavier","Xenos","Xerxes","Xever","Ximenes","Ximenez","Xymenes","Yale","Yanaton","Yance","Yancey","Yancy","Yank","Yankee","Yard","Yardley","Yehudi","Yehudit","Yorgo","Yorgos","York","Yorke","Yorker","Yul","Yule","Yulma","Yuma","Yuri","Yurik","Yves","Yvon","Yvor","Zaccaria","Zach","Zacharia","Zachariah","Zacharias","Zacharie","Zachary","Zacherie","Zachery","Zack","Zackariah","Zak","Zane","Zared","Zeb","Zebadiah","Zebedee","Zebulen","Zebulon","Zechariah","Zed","Zedekiah","Zeke","Zelig","Zerk","Zollie","Zolly"]'),_=a=>a.trim().toLowerCase(),ke=a=>[...new Map(a.map(l=>[_(l),l.trim()])).values()],Se={female:ke(Ra),male:ke(ja)};function Ea(a,l,i){const n=new Set(i.map(_));n.add(_(l));let r=Se[a].filter(y=>!n.has(_(y)));return r.length||(r=Se[a].filter(y=>_(y)!==_(l))),r[Math.floor(Math.random()*r.length)]}function on({bot:a,patch:l,activeState:i,mascotMotion:n,namePlaceholder:r}){const[y,h]=m.useState(!1),{draft:o}=P(),{state:s}=O();return e.jsxs("div",{className:"flex flex-col gap-4",children:[e.jsx(Na,{bot:a,activeState:i,mascotMotion:n,onPatch:l}),e.jsx(La,{bot:a}),e.jsxs("div",{children:[e.jsxs("div",{className:"mb-1.5 flex flex-wrap items-center justify-between gap-x-3 gap-y-1",children:[e.jsx("label",{htmlFor:`bot-name-${a.id}`,className:"text-[13px] text-ink-secondary",children:"Name"}),o&&e.jsx("div",{className:"flex flex-wrap gap-1",children:["female","male"].map(d=>e.jsx("button",{type:"button",className:"rounded-md px-2 py-1 text-xs text-ink-secondary hover:bg-control hover:text-ink",onClick:()=>l({name:Ea(d,a.name,s.bots.map(g=>g.name))}),children:u(d==="female"?"newBot.randomFemaleName":"newBot.randomMaleName")},d))})]}),e.jsx(J,{bot:a,kind:"chief"}),e.jsx("input",{id:`bot-name-${a.id}`,className:V,maxLength:ne.name,value:a.name,placeholder:r,onChange:d=>l({name:d.target.value})})]}),e.jsxs(Da,{label:"Title",children:[e.jsx(J,{bot:a,kind:"chief"}),e.jsx("input",{className:V,maxLength:ne.title,placeholder:"Describe what your agent does",value:a.title,onChange:d=>l({title:d.target.value})})]}),e.jsxs("div",{className:"block",children:[e.jsxs("div",{className:"mb-1.5 flex items-center justify-between gap-3",children:[e.jsx("label",{htmlFor:`bot-instructions-${a.id}`,className:"text-[13px] text-ink-secondary",children:"Blurb"}),e.jsxs("button",{type:"button",onClick:()=>h(!0),className:"flex items-center gap-1.5 rounded-md px-1.5 py-1 text-[11.5px] font-medium text-accent-text hover:bg-accent/10",children:[e.jsx(oe,{size:12})," View full"]})]}),e.jsx(J,{bot:a,kind:"chief"}),e.jsx("textarea",{id:`bot-instructions-${a.id}`,className:K(V,"min-h-[72px] resize-y leading-relaxed"),maxLength:ne.description,placeholder:"One line on what this bot is for","aria-label":"Blurb",value:a.description,onChange:d=>l({description:d.target.value})}),e.jsxs("div",{className:"mt-1.5 flex items-start justify-between gap-3 text-[11px] text-ink-secondary",children:[e.jsx("span",{children:"Shown in rosters, on the phone, and to other bots. Standing instructions belong in Soul, which has room for a full document."}),a.description.length>3e3&&e.jsxs("span",{className:"shrink-0 tabular-nums",children:[a.description.length.toLocaleString()," / ",ne.description.toLocaleString()]})]})]}),y&&e.jsx(Ba,{bot:a,inline:o,onClose:()=>h(!1)})]})}function Re(a){return new TextEncoder().encode(a).length}function Ta(a,l=200){const i=a.trim().split(`
|
|
3
3
|
`)[0]??"",n=i.match(/^.*?[.!?](?=\s|$)/);return(n?n[0]:i).trim().slice(0,l)}function Ga(a,l){return Re(a)>l?null:{soul:a}}function Ja({bot:a,onPatch:l,simple:i}){const{dispatch:n,flushBotPatches:r}=O(),{request:y}=P(),h=ne.soul,[o,s]=m.useState(a.soul??""),[d,g]=m.useState(null),[f,p]=m.useState(!1);m.useEffect(()=>{s(a.soul??"")},[a.id,a.soul]);const b=()=>r(a.id).then(()=>y(`/api/bots/${a.id}/soul`)).then(k=>g(k)).catch(()=>g(null));m.useEffect(()=>{b()},[a.id,a.soulDrift,r]);const B=Re(o),x=B>h,v=k=>{s(k);const R=Ga(k,h);R&&l(R)},D=async k=>{if(!(f||!d?.revision||typeof d.fileText!="string")){p(!0);try{await r(a.id),await y(`/api/bots/${a.id}/soul/${k}`,{method:"POST",body:JSON.stringify({fileText:d.fileText,expectedRevision:d.revision})})}catch(R){n({type:"error",message:R instanceof Error?R.message:String(R)})}finally{await b(),p(!1)}}},C=a.description.length>400&&!(a.soul??"").trim();return e.jsxs("div",{className:"block",children:[e.jsxs("div",{className:"mb-1.5 flex items-center justify-between gap-3",children:[e.jsx("label",{htmlFor:`bot-soul-${a.id}`,className:i?"text-[12px] text-ink-secondary":"text-[13px] text-ink-secondary",children:i?i.label:"Standing instructions (SOUL.md)"}),!i&&C&&e.jsx("button",{type:"button",disabled:f,onClick:()=>l({soul:a.description,description:Ta(a.description)}),className:"rounded-md px-1.5 py-1 text-[11.5px] font-medium text-accent-text hover:bg-accent/10",children:"Move instructions into SOUL.md"})]}),d?.drift&&e.jsxs("div",{className:"mb-2 rounded-lg border border-amber-500/40 bg-amber-500/10 p-3 text-[12px] text-ink",children:[e.jsx("div",{className:"font-medium",children:"SOUL.md on disk was edited outside the app."}),e.jsxs("div",{className:"mt-1 text-ink-secondary",children:["The bot keeps using the saved version until you choose. File: ",e.jsx("span",{className:"break-all",children:d.file})]}),e.jsx("pre",{className:"mt-2 max-h-40 overflow-auto whitespace-pre-wrap rounded bg-control p-2 text-[11.5px]",children:d.fileText}),e.jsxs("div",{className:"mt-2 flex gap-2",children:[e.jsx("button",{type:"button",disabled:f,onClick:()=>{D("apply-file")},className:"rounded-lg bg-accent px-3 py-1.5 text-[12px] font-medium text-white hover:brightness-110 disabled:opacity-50",children:"Use the file"}),e.jsx("button",{type:"button",disabled:f,onClick:()=>{D("discard-file")},className:"rounded-lg bg-control px-3 py-1.5 text-[12px] text-ink hover:bg-raised-hover disabled:opacity-50",children:"Keep the saved version"})]})]}),e.jsx("textarea",{id:`bot-soul-${a.id}`,className:K(V,i?"min-h-[140px] resize-y rounded-xl text-[14px] leading-relaxed":"min-h-[220px] resize-y font-mono leading-relaxed",x&&"ring-2 ring-red-500/60"),placeholder:i?i.placeholder:"Who this bot is and the rules it never breaks. Keep it short; put step-by-step procedure into a skill.","aria-invalid":x||void 0,disabled:f,value:o,onChange:k=>v(k.target.value)}),(!i||x)&&e.jsxs("div",{className:"mt-1.5 flex items-start justify-between gap-3 text-[11px] text-ink-secondary",children:[e.jsx("span",{children:!i&&e.jsxs(e.Fragment,{children:["In this bot’s context on every turn.",d?.file?e.jsxs(e.Fragment,{children:[" Mirrored to ",e.jsx("span",{className:"break-all",children:d.file}),"."]}):null]})}),e.jsxs("span",{className:K("shrink-0 tabular-nums",x&&"font-medium text-red-500"),children:[B.toLocaleString()," / ",h.toLocaleString()," bytes",x?" — not saved":""]})]})]})}function dn({bot:a,patch:l}){return e.jsxs("div",{className:"flex flex-col gap-4",children:[e.jsx("p",{className:"text-[13px] leading-relaxed text-ink-secondary",children:"Who this bot is and the rules it never breaks. Always in its context."}),e.jsx(J,{bot:a,kind:"chief"}),e.jsx(Ja,{bot:a,onPatch:l})]})}function Ka({bot:a,onAdded:l}){const{request:i,draft:n}=P(),r=m.useRef(i);r.current=i;const[y,h]=m.useState(null),[o,s]=m.useState([]),[d,g]=m.useState(""),[f,p]=m.useState(""),b=m.useCallback(async x=>{try{const v=await r.current(`/api/org-library/skills?botId=${encodeURIComponent(a.id)}`);if(x?.())return;h(v.organization?.name??null),s(v.skills??[])}catch{x?.()||h(null)}},[a.id]);if(m.useEffect(()=>{if(n)return;let x=!1;return b(()=>x),()=>{x=!0}},[n,b]),n||!y||o.length===0)return null;const B=async x=>{g(`${x.installId}:${x.name}`),p("");try{await r.current("/api/org-library/skills",{method:"POST",body:JSON.stringify({botId:a.id,installId:x.installId,name:x.name})}),await b(),l()}catch(v){p(v instanceof Error?v.message:String(v))}finally{g("")}};return e.jsxs("div",{className:"rounded-xl bg-card p-4",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(Ve,{size:16,className:"text-ink-secondary"}),e.jsx("div",{className:"text-[15px] font-medium text-ink",children:u("orgLibrary.tab",{name:y})})]}),e.jsx("div",{className:"mt-1 text-[12px] leading-relaxed text-ink-secondary",children:u("orgLibrary.skillsHint")}),e.jsx("div",{className:"mt-3 divide-y divide-hairline/40 overflow-hidden rounded-lg border border-hairline/40",children:o.map(x=>e.jsxs("div",{className:"flex items-center gap-2 px-3 py-2.5",children:[e.jsxs("div",{className:"min-w-0 flex-1",children:[e.jsx("div",{className:"truncate font-mono text-[12.5px] text-ink",children:x.name}),e.jsx("div",{className:"mt-0.5 line-clamp-2 text-[11.5px] text-ink-secondary",children:x.description}),e.jsx("div",{className:"mt-0.5 truncate text-[10.5px] text-ink-secondary",children:u("orgLibrary.skillFrom",{package:x.packageName,release:x.release,publisher:x.publisher})})]}),x.added?e.jsxs("span",{className:"flex shrink-0 items-center gap-1 text-[12px] text-ink-secondary",children:[e.jsx(xe,{size:13,className:"text-success"}),u("orgLibrary.added")]}):e.jsx("button",{type:"button",disabled:d!=="",onClick:()=>{B(x)},"aria-label":u("orgLibrary.skillAddAria",{name:x.name}),className:"shrink-0 rounded-lg bg-control px-3 py-1.5 text-[12.5px] text-ink hover:bg-raised-hover disabled:opacity-50",children:d===`${x.installId}:${x.name}`?u("orgLibrary.adding"):u("orgLibrary.add")})]},`${x.installId}:${x.name}`))}),f&&e.jsx("div",{role:"alert",className:"mt-2 text-[12px] text-danger",children:f})]})}function Fa(a){const{request:l}=P(),[i,n]=m.useState([]),[r,y]=m.useState([]),[h,o]=m.useState([]),[s,d]=m.useState(""),[g,f]=m.useState([]),[p,b]=m.useState(!0),[B,x]=m.useState(""),[v,D]=m.useState(""),[C,k]=m.useState(null),R=m.useRef(!1),T=async A=>{try{const L=await l(`/api/bots/${a.id}/skills`);if(A?.())return;n(L.skills??[]),f(L.staged??[]),o(L.library??[]),y(L.assignedSkills??[]),d(""),D("")}catch(L){A?.()||D(L instanceof Error?L.message:"Could not load learned skills.")}finally{A?.()||b(!1)}};m.useEffect(()=>{let A=!1;return b(!0),k(null),T(()=>A),()=>{A=!0}},[a.id]);const c=async(A,L=!1)=>{const U=(await l(`/api/bots/${a.id}/skills`)).assignedSkills??r,I=L?U.filter(F=>F!==A):[...new Set([...U,A])];await l(`/api/bots/${a.id}/skills-library`,{method:"PUT",body:JSON.stringify({skills:I})}),await T()};return{skills:i,staged:g,loading:p,working:B,setWorking:x,error:v,setError:D,reviewing:C,setReviewing:k,refresh:T,toggle:async A=>{x(A.name),D("");try{if(A.origin==="library"&&A.enabled){await l(`/api/skills-library/${encodeURIComponent(A.name)}`,{method:"PATCH",body:JSON.stringify({enabled:!A.enabled})}),await T();return}if(!A.enabled){const L=await l(A.origin==="library"?`/api/skills-library/${encodeURIComponent(A.name)}`:`/api/bots/${a.id}/skills/${encodeURIComponent(A.name)}`);if(!L.text)throw new Error("The skill contents are unavailable; remove and import or learn it again.");k({skill:A,text:L.text});return}await l(`/api/bots/${a.id}/skills/${encodeURIComponent(A.name)}`,{method:"PATCH",body:JSON.stringify({enabled:!1})}),await T()}catch(L){D(L instanceof Error?L.message:"Could not update this skill.")}finally{x("")}},enableReviewed:async()=>{if(!C)return;const{skill:A}=C;x(A.name),D("");try{await l(A.origin==="library"?`/api/skills-library/${encodeURIComponent(A.name)}`:`/api/bots/${a.id}/skills/${encodeURIComponent(A.name)}`,{method:"PATCH",body:JSON.stringify({enabled:!0})}),k(null),await T()}catch(L){D(L instanceof Error?L.message:"Could not enable this skill.")}finally{x("")}},libraryPool:h,addFromLibrary:s,setAddFromLibrary:d,assignmentBusy:R,putAssignments:c,addToBot:async()=>{const A=s.trim();if(!(!A||R.current)){R.current=!0,x(A),D("");try{await c(A)}catch(L){D(L instanceof Error?L.message:"Could not assign that skill.")}finally{R.current=!1,x("")}}}}}function Pa({skill:a,text:l,error:i,working:n,onCancel:r,onEnable:y}){const h=m.useRef(null),o=m.useRef(r);return o.current=r,m.useEffect(()=>{const s=document.activeElement instanceof HTMLElement?document.activeElement:null,d=h.current,g=d?.parentElement?.closest('[role="dialog"]');d?.focus();const f=p=>{if(p.key==="Escape"&&(p.preventDefault(),n||o.current()),p.key!=="Tab"||!d)return;const b=d.querySelectorAll('button:not([disabled]), [tabindex="0"]'),B=b[0],x=b[b.length-1];!B||!x||(p.shiftKey&&(document.activeElement===B||document.activeElement===d)?(p.preventDefault(),x.focus()):!p.shiftKey&&document.activeElement===x&&(p.preventDefault(),B.focus()))};return window.addEventListener("keydown",f),()=>{window.removeEventListener("keydown",f),s&&s!==document.body&&s.isConnected?s.focus():g?.focus()}},[n]),e.jsx("div",{ref:h,tabIndex:-1,role:"dialog","aria-modal":"true","aria-labelledby":"skill-review-title",className:"fixed inset-0 z-[90] flex items-center justify-center bg-black/45 p-6",children:e.jsxs("div",{className:"flex max-h-[min(760px,90vh)] w-full max-w-2xl flex-col rounded-2xl bg-card p-5 shadow-2xl",children:[e.jsxs("div",{id:"skill-review-title",className:"text-[16px] font-semibold text-ink",children:["Review ",a.name," before enabling"]}),e.jsxs("div",{className:"mt-1 break-all text-[11.5px] text-ink-secondary",children:["Source: ",a.source]}),a.warnings.length>0&&e.jsx("div",{className:"mt-2 rounded-lg bg-warning/10 px-3 py-2 text-[11.5px] text-warning",children:a.warnings.join(" · ")}),e.jsx("pre",{tabIndex:0,"aria-label":`Full SKILL.md for ${a.name}`,className:"mt-3 min-h-0 flex-1 overflow-auto whitespace-pre-wrap break-words rounded-xl bg-inset p-3 font-mono text-[12px] leading-relaxed text-ink",children:l}),i&&e.jsx("div",{role:"alert",className:"mt-2 text-[12px] text-danger",children:i}),e.jsxs("div",{className:"mt-4 flex justify-end gap-2",children:[e.jsx("button",{type:"button",disabled:n,onClick:r,className:"rounded-lg px-4 py-2 text-[13px] font-medium text-ink-secondary hover:bg-raised disabled:opacity-40",children:"Cancel"}),e.jsx("button",{type:"button",disabled:n,onClick:y,className:"rounded-lg bg-accent px-4 py-2 text-[13px] font-semibold text-white disabled:opacity-40",children:"Enable reviewed skill"})]})]})})}function cn({bot:a}){const{request:l}=P(),{state:i}=O(),n=ze(i.config),r=Ue(i.config),{skills:y,staged:h,loading:o,working:s,setWorking:d,error:g,setError:f,reviewing:p,setReviewing:b,refresh:B,toggle:x,enableReviewed:v,libraryPool:D,addFromLibrary:C,setAddFromLibrary:k,assignmentBusy:R,putAssignments:T,addToBot:c}=Fa(a),[t,N]=m.useState(null),[S,A]=m.useState(""),[L,z]=m.useState(!1),[U,I]=m.useState(""),F=m.useRef(null),j=!!t;m.useEffect(()=>{if(!j)return;const M=document.activeElement instanceof HTMLElement?document.activeElement:null,E=F.current,q=E?.parentElement?.closest('[role="dialog"]');E?.focus();const w=G=>{if(G.key==="Escape"&&(G.preventDefault(),s||N(null)),G.key!=="Tab"||!E)return;const Q=E.querySelectorAll('button:not([disabled]), [tabindex="0"]'),de=Q[0],ce=Q[Q.length-1];!de||!ce||(G.shiftKey&&(document.activeElement===de||document.activeElement===E)?(G.preventDefault(),ce.focus()):!G.shiftKey&&document.activeElement===ce&&(G.preventDefault(),de.focus()))};return window.addEventListener("keydown",w),()=>{window.removeEventListener("keydown",w),M&&M!==document.body&&M.isConnected?M.focus():q?.focus()}},[j,s]),m.useEffect(()=>{N(null)},[a.id]);const H=async M=>{if(M.origin==="library"){if(R.current||!window.confirm(`Unassign “${M.name}” from this bot? The skill stays in the library.`))return;R.current=!0,d(M.name),f("");try{await T(M.name,!0)}catch(E){f(E instanceof Error?E.message:"Could not unassign that skill.")}finally{R.current=!1,d("")}return}if(window.confirm(`Remove the learned skill “${M.name}”?`)){d(M.name),f("");try{await l(`/api/bots/${a.id}/skills/${encodeURIComponent(M.name)}`,{method:"DELETE"}),await B()}catch(E){f(E instanceof Error?E.message:"Could not remove this skill.")}finally{d("")}}},W=async M=>{f("");try{const E=M.origin==="library"?await l(`/api/skills-library/${encodeURIComponent(M.name)}`):await l(`/api/bots/${a.id}/skills/${encodeURIComponent(M.name)}`);N({name:M.name,text:E.text??""})}catch(E){f(E instanceof Error?E.message:"Could not load this skill.")}},X=async()=>{const M=S.trim();if(M){z(!0),f(""),I("");try{const q=((await l(`/api/bots/${a.id}/skills`,{method:"POST",body:JSON.stringify({source:M})})).installed??[]).length;I(`Imported ${q} skill${q===1?"":"s"} — review and enable below.`),A(""),await B()}catch(E){f(E instanceof Error?E.message:"Could not import that skill.")}finally{z(!1)}}};return e.jsxs("div",{className:"flex flex-col gap-4",children:[e.jsxs("div",{className:"rounded-xl bg-card p-4",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(oe,{size:16,className:"text-ink-secondary"}),e.jsx("div",{className:"text-[15px] font-medium text-ink",children:"Learned skills"})]}),e.jsx("div",{className:"mt-1 text-[12px] leading-relaxed text-ink-secondary",children:n?u("skills.learned.hintOn"):u("skills.learned.hintOff")}),r?e.jsxs("div",{className:"mt-3 flex flex-col gap-1.5",children:[D.length>0?e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsxs("select",{"aria-label":"Add a skill from the library",value:C,disabled:!!s,onChange:M=>k(M.target.value),className:V+" truncate",children:[e.jsx("option",{value:"",children:"Add a skill from the library…"}),D.map(M=>e.jsx("option",{value:M.name,children:M.name},M.name))]}),e.jsx("button",{type:"button",disabled:!C||!!s,onClick:()=>{c()},className:"shrink-0 rounded-lg bg-control px-3 py-2 text-[13px] text-ink hover:bg-raised-hover disabled:opacity-50",children:"Add"})]}):e.jsx("div",{className:"text-[12px] text-ink-secondary",children:"Every skill in the library is already assigned to this bot."}),e.jsx("div",{className:"text-[11.5px] text-ink-secondary",children:"Import and manage library skills in Settings → Skills."})]}):e.jsxs(e.Fragment,{children:[e.jsxs("form",{className:"mt-3 flex items-center gap-2",onSubmit:M=>{M.preventDefault(),X()},children:[e.jsx("input",{className:V,placeholder:"owner/repo, https://github.com/…/SKILL.md, or https://skills.sh/…","aria-label":"Import a skill",value:S,onChange:M=>A(M.target.value)}),e.jsx("button",{type:"submit",disabled:L||!S.trim(),className:"shrink-0 rounded-lg bg-control px-3 py-2 text-[13px] text-ink hover:bg-raised-hover disabled:opacity-50",children:L?"Importing…":"Import"})]}),U&&e.jsx("div",{className:"mt-1 text-[12px] text-ink-secondary",children:U})]}),o?e.jsx("div",{className:"mt-3 text-[12px] text-ink-secondary",children:"Loading…"}):y.length===0?e.jsx("div",{className:"mt-3 rounded-lg bg-inset px-3 py-2 text-[12px] text-ink-secondary",children:"No installed skills yet."}):e.jsx("div",{className:"mt-3 divide-y divide-hairline/40 overflow-hidden rounded-lg border border-hairline/40",children:y.map(M=>e.jsxs("div",{className:"px-3 py-2.5",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsxs("button",{type:"button",onClick:()=>{W(M)},className:"min-w-0 flex-1 text-left",children:[e.jsx("div",{className:"truncate font-mono text-[12.5px] text-ink",children:M.name}),r&&e.jsx("span",{className:"ml-1.5 rounded bg-control px-1 py-px font-mono text-[9.5px] uppercase tracking-wide text-ink-secondary",children:M.origin==="library"?"library":"private"}),e.jsx("div",{className:"mt-0.5 line-clamp-2 text-[11.5px] text-ink-secondary",children:M.description}),e.jsx("div",{className:"mt-0.5 text-[10.5px] text-ink-secondary",children:"Used when the bot decides it's relevant"})]}),e.jsx(Z,{checked:M.enabled,"aria-label":`${M.enabled?"Disable":"Enable"} ${M.name}`,disabled:!!s,onClick:()=>{x(M)}}),e.jsx("button",{"aria-label":`Remove ${M.name}`,title:"Remove skill",disabled:!!s,onClick:()=>{H(M)},className:"flex size-8 shrink-0 items-center justify-center rounded-md text-ink-secondary hover:bg-danger/10 hover:text-danger disabled:opacity-40",children:e.jsx(Be,{size:15})})]}),e.jsxs("div",{className:"mt-1 truncate text-[10.5px] text-ink-secondary",title:M.source,children:["Source: ",M.source]}),M.warnings.length>0&&e.jsx("div",{className:"mt-1 text-[10.5px] text-warning",children:M.warnings.join(" · ")})]},M.name))}),h.length>0&&e.jsxs("div",{className:"mt-2 text-[11.5px] text-warning",children:[h.length," proposal",h.length===1?" is":"s are"," waiting for a decision in chat."]}),g&&e.jsx("div",{role:"alert",className:"mt-2 text-[12px] text-danger",children:g})]}),e.jsx(Ka,{bot:a,onAdded:()=>{B()}}),p&&e.jsx(Pa,{skill:p.skill,text:p.text,error:g,working:s===p.skill.name,onCancel:()=>b(null),onEnable:()=>{v()}}),t&&e.jsx("div",{ref:F,tabIndex:-1,role:"dialog","aria-modal":"true","aria-labelledby":"skill-view-title",className:"fixed inset-0 z-[90] flex items-center justify-center bg-black/45 p-6",children:e.jsxs("div",{className:"flex max-h-[min(760px,90vh)] w-full max-w-2xl flex-col rounded-2xl bg-card p-5 shadow-2xl",children:[e.jsxs("div",{className:"flex items-center justify-between gap-3",children:[e.jsx("div",{id:"skill-view-title",className:"text-[16px] font-semibold text-ink",children:t.name}),e.jsx("button",{type:"button",onClick:()=>N(null),className:"rounded-md px-2 py-1 text-[13px] text-ink-secondary hover:bg-control hover:text-ink",children:"Close"})]}),e.jsx("pre",{tabIndex:0,"aria-label":`Full SKILL.md for ${t.name}`,className:"mt-3 min-h-0 flex-1 overflow-auto whitespace-pre-wrap break-words rounded-xl bg-inset p-3 font-mono text-[12px] leading-relaxed text-ink",children:t.text})]})})]})}const Ha={grok:"native-and-mcp",grokAgent:"native-and-mcp",piAgent:"native-and-mcp","openai-compat":"native-and-mcp",mistral:"native-and-mcp",minimax:"native-and-mcp",cerebras:"native-and-mcp",claudeAgent:"mcp",codex:"mcp",geminiAgent:"mcp",kimiAgent:"mcp",droidAgent:"mcp",cursorAgent:"mcp",opencodeGo:"mcp",qwenAgent:"mcp",hermesAgent:"mcp",customAcp:"mcp",antigravityAgent:"mcp"},le=a=>a.split(/\r?\n/).map(l=>l.trim()).filter(Boolean);function Ia({bot:a,engineKind:l}){const{request:i}=P(),n=ve(a.toolScope),r=n.ok?n.scope:void 0,[y,h]=m.useState(null),[o,s]=m.useState(!1),[d,g]=m.useState(null),f=m.useRef(!0),p=m.useRef(!1);m.useEffect(()=>(f.current=!0,()=>{f.current=!1}),[]);const b=y??{custom:a.toolScope!==void 0,onlyListed:r?.allow!==void 0,allow:r?.allow?.join(`
|
|
4
4
|
`)??"",deny:r?.deny?.join(`
|