codecritique 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (40) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +1145 -0
  3. package/package.json +98 -0
  4. package/src/content-retrieval.js +747 -0
  5. package/src/custom-documents.js +597 -0
  6. package/src/embeddings/cache-manager.js +364 -0
  7. package/src/embeddings/constants.js +40 -0
  8. package/src/embeddings/database.js +921 -0
  9. package/src/embeddings/errors.js +208 -0
  10. package/src/embeddings/factory.js +447 -0
  11. package/src/embeddings/file-processor.js +851 -0
  12. package/src/embeddings/model-manager.js +337 -0
  13. package/src/embeddings/similarity-calculator.js +97 -0
  14. package/src/embeddings/types.js +113 -0
  15. package/src/feedback-loader.js +384 -0
  16. package/src/index.js +1418 -0
  17. package/src/llm.js +123 -0
  18. package/src/pr-history/analyzer.js +579 -0
  19. package/src/pr-history/bot-detector.js +123 -0
  20. package/src/pr-history/cli-utils.js +204 -0
  21. package/src/pr-history/comment-processor.js +549 -0
  22. package/src/pr-history/database.js +819 -0
  23. package/src/pr-history/github-client.js +629 -0
  24. package/src/project-analyzer.js +955 -0
  25. package/src/rag-analyzer.js +2764 -0
  26. package/src/rag-review.js +566 -0
  27. package/src/technology-keywords.json +753 -0
  28. package/src/utils/command.js +48 -0
  29. package/src/utils/constants.js +263 -0
  30. package/src/utils/context-inference.js +364 -0
  31. package/src/utils/document-detection.js +105 -0
  32. package/src/utils/file-validation.js +271 -0
  33. package/src/utils/git.js +232 -0
  34. package/src/utils/language-detection.js +170 -0
  35. package/src/utils/logging.js +24 -0
  36. package/src/utils/markdown.js +132 -0
  37. package/src/utils/mobilebert-tokenizer.js +141 -0
  38. package/src/utils/pr-chunking.js +276 -0
  39. package/src/utils/string-utils.js +28 -0
  40. package/src/zero-shot-classifier-open.js +392 -0
@@ -0,0 +1,753 @@
1
+ {
2
+ "languages": [
3
+ "javascript",
4
+ "typescript",
5
+ "python",
6
+ "java",
7
+ "csharp",
8
+ "cpp",
9
+ "c",
10
+ "go",
11
+ "rust",
12
+ "ruby",
13
+ "php",
14
+ "swift",
15
+ "kotlin",
16
+ "scala",
17
+ "dart",
18
+ "elixir",
19
+ "erlang",
20
+ "haskell",
21
+ "clojure",
22
+ "julia",
23
+ "r",
24
+ "matlab",
25
+ "fortran",
26
+ "cobol",
27
+ "pascal",
28
+ "ada",
29
+ "lisp",
30
+ "scheme",
31
+ "prolog",
32
+ "lua",
33
+ "perl",
34
+ "groovy",
35
+ "coffeescript",
36
+ "elm",
37
+ "purescript",
38
+ "reasonml",
39
+ "ocaml",
40
+ "fsharp",
41
+ "nim",
42
+ "zig",
43
+ "crystal",
44
+ "d",
45
+ "dlang",
46
+ "raku",
47
+ "objective-c",
48
+ "vb",
49
+ "vbscript",
50
+ "powershell",
51
+ "bash",
52
+ "shell"
53
+ ],
54
+ "frontend": {
55
+ "frameworks": [
56
+ "react",
57
+ "angular",
58
+ "vue",
59
+ "svelte",
60
+ "solid",
61
+ "qwik",
62
+ "alpine",
63
+ "ember",
64
+ "backbone",
65
+ "jquery",
66
+ "preact",
67
+ "inferno",
68
+ "mithril",
69
+ "riot",
70
+ "polymer",
71
+ "aurelia",
72
+ "knockout",
73
+ "marko",
74
+ "lit"
75
+ ],
76
+ "meta-frameworks": [
77
+ "next.js",
78
+ "nextjs",
79
+ "nuxt.js",
80
+ "nuxtjs",
81
+ "gatsby",
82
+ "remix",
83
+ "astro",
84
+ "sveltekit",
85
+ "solidstart",
86
+ "qwik-city",
87
+ "fresh",
88
+ "eleventy",
89
+ "vitepress",
90
+ "docusaurus"
91
+ ],
92
+ "build-tools": [
93
+ "webpack",
94
+ "vite",
95
+ "rollup",
96
+ "parcel",
97
+ "esbuild",
98
+ "snowpack",
99
+ "wmr",
100
+ "turbopack",
101
+ "bun",
102
+ "babel",
103
+ "swc",
104
+ "rome",
105
+ "biome"
106
+ ],
107
+ "css": [
108
+ "tailwind",
109
+ "tailwindcss",
110
+ "bootstrap",
111
+ "bulma",
112
+ "foundation",
113
+ "materialize",
114
+ "semantic-ui",
115
+ "ant-design",
116
+ "material-ui",
117
+ "mui",
118
+ "chakra-ui",
119
+ "mantine",
120
+ "primevue",
121
+ "vuetify",
122
+ "quasar",
123
+ "element-plus",
124
+ "naive-ui",
125
+ "arco-design",
126
+ "semi-design",
127
+ "headlessui",
128
+ "radix-ui",
129
+ "shadcn",
130
+ "postcss",
131
+ "sass",
132
+ "scss",
133
+ "less",
134
+ "stylus",
135
+ "emotion",
136
+ "styled-components",
137
+ "stitches",
138
+ "vanilla-extract"
139
+ ],
140
+ "testing": [
141
+ "jest",
142
+ "vitest",
143
+ "cypress",
144
+ "playwright",
145
+ "puppeteer",
146
+ "testcafe",
147
+ "nightwatch",
148
+ "webdriverio",
149
+ "selenium",
150
+ "mocha",
151
+ "chai",
152
+ "jasmine",
153
+ "karma",
154
+ "qunit",
155
+ "ava",
156
+ "tape",
157
+ "uvu"
158
+ ],
159
+ "state-management": [
160
+ "redux",
161
+ "mobx",
162
+ "zustand",
163
+ "jotai",
164
+ "recoil",
165
+ "valtio",
166
+ "xstate",
167
+ "effector",
168
+ "akita",
169
+ "ngrx",
170
+ "ngxs",
171
+ "vuex",
172
+ "pinia"
173
+ ]
174
+ },
175
+ "backend": {
176
+ "node": [
177
+ "express",
178
+ "fastify",
179
+ "koa",
180
+ "hapi",
181
+ "nestjs",
182
+ "adonisjs",
183
+ "sails",
184
+ "meteor",
185
+ "strapi",
186
+ "keystone",
187
+ "directus",
188
+ "feathers",
189
+ "loopback",
190
+ "restify",
191
+ "polka",
192
+ "micro"
193
+ ],
194
+ "python": [
195
+ "django",
196
+ "flask",
197
+ "fastapi",
198
+ "pyramid",
199
+ "tornado",
200
+ "bottle",
201
+ "falcon",
202
+ "sanic",
203
+ "starlette",
204
+ "aiohttp",
205
+ "cherrypy",
206
+ "web2py",
207
+ "turbogears"
208
+ ],
209
+ "java": [
210
+ "spring",
211
+ "spring-boot",
212
+ "struts",
213
+ "hibernate",
214
+ "jersey",
215
+ "dropwizard",
216
+ "micronaut",
217
+ "quarkus",
218
+ "vert.x",
219
+ "vertx",
220
+ "play",
221
+ "spark",
222
+ "javalin",
223
+ "ratpack"
224
+ ],
225
+ "ruby": ["rails", "ruby-on-rails", "sinatra", "hanami", "roda", "cuba", "grape", "padrino"],
226
+ "php": ["laravel", "symfony", "codeigniter", "yii", "slim", "lumen", "phalcon", "cakephp", "zend"],
227
+ "dotnet": [".net", "dotnet", "asp.net", "aspnet", "blazor", "entity-framework", "orleans", "dapr"],
228
+ "go": ["gin", "echo", "fiber", "chi", "gorilla", "revel", "beego", "iris", "buffalo"],
229
+ "rust": ["actix", "actix-web", "rocket", "warp", "axum", "tide", "poem", "salvo"]
230
+ },
231
+ "databases": {
232
+ "sql": [
233
+ "postgresql",
234
+ "postgres",
235
+ "mysql",
236
+ "mariadb",
237
+ "sqlite",
238
+ "sqlserver",
239
+ "mssql",
240
+ "oracle",
241
+ "cockroachdb",
242
+ "tidb",
243
+ "yugabyte",
244
+ "timescale",
245
+ "timescaledb"
246
+ ],
247
+ "nosql": [
248
+ "mongodb",
249
+ "couchdb",
250
+ "couchbase",
251
+ "cassandra",
252
+ "dynamodb",
253
+ "cosmosdb",
254
+ "firestore",
255
+ "fauna",
256
+ "arangodb",
257
+ "orientdb",
258
+ "rethinkdb",
259
+ "gun",
260
+ "pouchdb"
261
+ ],
262
+ "cache": ["redis", "memcached", "hazelcast", "ignite", "aerospike", "geode"],
263
+ "search": ["elasticsearch", "elastic", "solr", "algolia", "meilisearch", "typesense", "zinc", "manticore"],
264
+ "vector": ["pinecone", "weaviate", "qdrant", "milvus", "chroma", "faiss", "annoy", "vespa", "vald"],
265
+ "graph": ["neo4j", "dgraph", "arangodb", "janusgraph", "amazon-neptune", "tigergraph"]
266
+ },
267
+ "cloud": {
268
+ "providers": [
269
+ "aws",
270
+ "amazon-web-services",
271
+ "azure",
272
+ "microsoft-azure",
273
+ "gcp",
274
+ "google-cloud",
275
+ "google-cloud-platform",
276
+ "alibaba-cloud",
277
+ "ibm-cloud",
278
+ "oracle-cloud",
279
+ "digitalocean",
280
+ "linode",
281
+ "vultr",
282
+ "hetzner"
283
+ ],
284
+ "platforms": [
285
+ "heroku",
286
+ "vercel",
287
+ "netlify",
288
+ "railway",
289
+ "render",
290
+ "fly.io",
291
+ "flyio",
292
+ "deno-deploy",
293
+ "cloudflare-workers",
294
+ "cloudflare-pages",
295
+ "github-pages",
296
+ "gitlab-pages",
297
+ "surge",
298
+ "now"
299
+ ],
300
+ "serverless": [
301
+ "lambda",
302
+ "aws-lambda",
303
+ "azure-functions",
304
+ "google-cloud-functions",
305
+ "cloudflare-workers",
306
+ "vercel-functions",
307
+ "netlify-functions",
308
+ "edge-functions",
309
+ "durable-functions"
310
+ ],
311
+ "containers": [
312
+ "docker",
313
+ "kubernetes",
314
+ "k8s",
315
+ "openshift",
316
+ "rancher",
317
+ "nomad",
318
+ "mesos",
319
+ "swarm",
320
+ "podman",
321
+ "containerd",
322
+ "cri-o",
323
+ "k3s",
324
+ "microk8s",
325
+ "kind",
326
+ "minikube"
327
+ ]
328
+ },
329
+ "devops": {
330
+ "ci-cd": [
331
+ "jenkins",
332
+ "gitlab-ci",
333
+ "github-actions",
334
+ "circleci",
335
+ "travis-ci",
336
+ "bitbucket-pipelines",
337
+ "azure-devops",
338
+ "teamcity",
339
+ "bamboo",
340
+ "drone",
341
+ "woodpecker",
342
+ "tekton",
343
+ "argo-cd",
344
+ "flux"
345
+ ],
346
+ "iac": [
347
+ "terraform",
348
+ "ansible",
349
+ "puppet",
350
+ "chef",
351
+ "saltstack",
352
+ "pulumi",
353
+ "crossplane",
354
+ "cdk",
355
+ "cloudformation",
356
+ "arm-templates",
357
+ "bicep"
358
+ ],
359
+ "monitoring": [
360
+ "prometheus",
361
+ "grafana",
362
+ "datadog",
363
+ "new-relic",
364
+ "newrelic",
365
+ "splunk",
366
+ "elastic-apm",
367
+ "sentry",
368
+ "rollbar",
369
+ "bugsnag",
370
+ "honeycomb",
371
+ "jaeger",
372
+ "zipkin",
373
+ "opentelemetry"
374
+ ],
375
+ "logging": [
376
+ "elk",
377
+ "elasticsearch",
378
+ "logstash",
379
+ "kibana",
380
+ "fluentd",
381
+ "fluent-bit",
382
+ "vector",
383
+ "rsyslog",
384
+ "syslog-ng",
385
+ "graylog",
386
+ "papertrail",
387
+ "loggly"
388
+ ]
389
+ },
390
+ "mobile": {
391
+ "native": ["swift", "kotlin", "objective-c", "java", "swiftui", "uikit", "jetpack-compose"],
392
+ "cross-platform": [
393
+ "react-native",
394
+ "flutter",
395
+ "ionic",
396
+ "xamarin",
397
+ "nativescript",
398
+ "expo",
399
+ "capacitor",
400
+ "cordova",
401
+ "phonegap",
402
+ "quasar",
403
+ "framework7",
404
+ "onsen-ui"
405
+ ]
406
+ },
407
+ "ai-ml": {
408
+ "frameworks": [
409
+ "tensorflow",
410
+ "pytorch",
411
+ "keras",
412
+ "scikit-learn",
413
+ "sklearn",
414
+ "jax",
415
+ "mxnet",
416
+ "caffe",
417
+ "theano",
418
+ "paddle",
419
+ "onnx",
420
+ "coreml",
421
+ "mlflow",
422
+ "kubeflow"
423
+ ],
424
+ "libraries": [
425
+ "numpy",
426
+ "pandas",
427
+ "scipy",
428
+ "matplotlib",
429
+ "seaborn",
430
+ "plotly",
431
+ "opencv",
432
+ "pillow",
433
+ "nltk",
434
+ "spacy",
435
+ "gensim",
436
+ "transformers",
437
+ "huggingface",
438
+ "langchain",
439
+ "llamaindex"
440
+ ],
441
+ "platforms": [
442
+ "openai",
443
+ "anthropic",
444
+ "cohere",
445
+ "huggingface",
446
+ "replicate",
447
+ "sagemaker",
448
+ "vertex-ai",
449
+ "azure-ml",
450
+ "databricks",
451
+ "mlflow",
452
+ "weights-biases",
453
+ "wandb",
454
+ "neptune-ai"
455
+ ]
456
+ },
457
+ "data": {
458
+ "processing": [
459
+ "spark",
460
+ "hadoop",
461
+ "flink",
462
+ "kafka",
463
+ "airflow",
464
+ "prefect",
465
+ "dagster",
466
+ "dbt",
467
+ "great-expectations",
468
+ "pandas",
469
+ "polars",
470
+ "dask",
471
+ "ray",
472
+ "beam",
473
+ "storm",
474
+ "samza",
475
+ "nifi"
476
+ ],
477
+ "visualization": [
478
+ "tableau",
479
+ "powerbi",
480
+ "looker",
481
+ "metabase",
482
+ "superset",
483
+ "redash",
484
+ "grafana",
485
+ "kibana",
486
+ "d3",
487
+ "d3.js",
488
+ "chart.js",
489
+ "chartjs",
490
+ "highcharts",
491
+ "echarts",
492
+ "plotly",
493
+ "vega"
494
+ ]
495
+ },
496
+ "messaging": {
497
+ "queues": [
498
+ "rabbitmq",
499
+ "kafka",
500
+ "redis",
501
+ "sqs",
502
+ "sns",
503
+ "pubsub",
504
+ "nats",
505
+ "mqtt",
506
+ "amqp",
507
+ "zeromq",
508
+ "activemq",
509
+ "artemis",
510
+ "pulsar",
511
+ "eventbridge",
512
+ "service-bus"
513
+ ],
514
+ "realtime": [
515
+ "socket.io",
516
+ "socketio",
517
+ "signalr",
518
+ "pusher",
519
+ "pubnub",
520
+ "ably",
521
+ "supabase-realtime",
522
+ "phoenix-channels",
523
+ "action-cable",
524
+ "mercure",
525
+ "centrifugo"
526
+ ]
527
+ },
528
+ "security": {
529
+ "auth": [
530
+ "auth0",
531
+ "okta",
532
+ "keycloak",
533
+ "firebase-auth",
534
+ "supabase-auth",
535
+ "cognito",
536
+ "oauth",
537
+ "oauth2",
538
+ "openid",
539
+ "saml",
540
+ "ldap",
541
+ "active-directory",
542
+ "jwt",
543
+ "passport"
544
+ ],
545
+ "tools": [
546
+ "owasp",
547
+ "snyk",
548
+ "sonarqube",
549
+ "checkmarx",
550
+ "veracode",
551
+ "fortify",
552
+ "semgrep",
553
+ "trivy",
554
+ "grype",
555
+ "clair",
556
+ "anchore",
557
+ "twistlock",
558
+ "aqua",
559
+ "prisma-cloud"
560
+ ]
561
+ },
562
+ "blockchain": {
563
+ "platforms": [
564
+ "ethereum",
565
+ "bitcoin",
566
+ "solana",
567
+ "polygon",
568
+ "avalanche",
569
+ "cardano",
570
+ "polkadot",
571
+ "cosmos",
572
+ "near",
573
+ "algorand",
574
+ "tezos",
575
+ "binance-smart-chain",
576
+ "arbitrum",
577
+ "optimism"
578
+ ],
579
+ "tools": [
580
+ "web3",
581
+ "web3.js",
582
+ "ethers",
583
+ "ethers.js",
584
+ "truffle",
585
+ "hardhat",
586
+ "foundry",
587
+ "remix",
588
+ "ganache",
589
+ "metamask",
590
+ "walletconnect",
591
+ "rainbow",
592
+ "wagmi",
593
+ "viem"
594
+ ]
595
+ },
596
+ "gamedev": {
597
+ "engines": [
598
+ "unity",
599
+ "unreal",
600
+ "godot",
601
+ "phaser",
602
+ "babylon.js",
603
+ "babylonjs",
604
+ "three.js",
605
+ "threejs",
606
+ "playcanvas",
607
+ "cocos2d",
608
+ "construct",
609
+ "gamemaker",
610
+ "defold",
611
+ "bevy",
612
+ "amethyst"
613
+ ]
614
+ },
615
+ "lowcode": {
616
+ "platforms": [
617
+ "bubble",
618
+ "webflow",
619
+ "retool",
620
+ "appsmith",
621
+ "tooljet",
622
+ "budibase",
623
+ "nocodb",
624
+ "baserow",
625
+ "airtable",
626
+ "notion",
627
+ "coda",
628
+ "monday",
629
+ "clickup",
630
+ "asana",
631
+ "trello",
632
+ "jira"
633
+ ]
634
+ },
635
+ "api": {
636
+ "protocols": [
637
+ "rest",
638
+ "graphql",
639
+ "grpc",
640
+ "websocket",
641
+ "soap",
642
+ "jsonrpc",
643
+ "openapi",
644
+ "swagger",
645
+ "asyncapi",
646
+ "raml",
647
+ "api-blueprint",
648
+ "postman",
649
+ "insomnia",
650
+ "paw",
651
+ "httpie"
652
+ ]
653
+ },
654
+ "testing": {
655
+ "tools": [
656
+ "jest",
657
+ "mocha",
658
+ "chai",
659
+ "jasmine",
660
+ "vitest",
661
+ "ava",
662
+ "tap",
663
+ "tape",
664
+ "qunit",
665
+ "pytest",
666
+ "unittest",
667
+ "nose",
668
+ "behave",
669
+ "junit",
670
+ "testng",
671
+ "mockito",
672
+ "rspec",
673
+ "minitest",
674
+ "phpunit",
675
+ "pest",
676
+ "codeception",
677
+ "xunit",
678
+ "nunit",
679
+ "mstest"
680
+ ]
681
+ },
682
+ "ides": {
683
+ "editors": [
684
+ "vscode",
685
+ "visual-studio-code",
686
+ "vim",
687
+ "neovim",
688
+ "emacs",
689
+ "sublime",
690
+ "atom",
691
+ "intellij",
692
+ "webstorm",
693
+ "pycharm",
694
+ "rubymine",
695
+ "goland",
696
+ "rider",
697
+ "datagrip",
698
+ "android-studio",
699
+ "xcode",
700
+ "eclipse",
701
+ "netbeans",
702
+ "visual-studio"
703
+ ]
704
+ },
705
+ "version-control": {
706
+ "systems": [
707
+ "git",
708
+ "github",
709
+ "gitlab",
710
+ "bitbucket",
711
+ "svn",
712
+ "mercurial",
713
+ "perforce",
714
+ "tfs",
715
+ "azure-repos",
716
+ "aws-codecommit",
717
+ "gitea",
718
+ "gogs",
719
+ "fossil"
720
+ ]
721
+ },
722
+ "package-managers": {
723
+ "tools": [
724
+ "npm",
725
+ "yarn",
726
+ "pnpm",
727
+ "bun",
728
+ "pip",
729
+ "poetry",
730
+ "pipenv",
731
+ "conda",
732
+ "cargo",
733
+ "maven",
734
+ "gradle",
735
+ "sbt",
736
+ "composer",
737
+ "bundler",
738
+ "gem",
739
+ "hex",
740
+ "mix",
741
+ "pub",
742
+ "nuget",
743
+ "vcpkg",
744
+ "conan",
745
+ "homebrew",
746
+ "apt",
747
+ "yum",
748
+ "pacman",
749
+ "snap",
750
+ "flatpak"
751
+ ]
752
+ }
753
+ }