Öffentliches Register
Software-GesundheitsberichtSchema 0.27.0 · Metriken 1.14.0 · 2026-07-30 12:18 UTC

minpeter / opensearch

Web search and page fetch for agents and TypeScript apps.

TypeScriptKeine Lizenz erkannt★ 11 Sterne⑂ 1 Forkseit Apr. 2026Auf GitHub ansehen ↗

minpeter/opensearch erreicht einen Gesundheitsindex von 60 von 100 und liegt damit im Bereich Mittel. Am stärksten schneidet es bei Vitality (82/100) ab, am schwächsten bei Community & Adoption (31/100). Zuletzt vor 1 Tag aktualisiert. Ein einzelner Mitwirkender trägt den Großteil der jüngsten Arbeit.

60
gesamt / 100
Mittel

Software-Gesundheitsindex

Metriken werden auf einer Skala von 1–100 in gewichtete Kategorien gruppiert. Der Gesamtwert beginnt als ihr Mittel; sobald öffentliche Evidenz die Richtlinie für Hochrisikojurisdiktionen auslöst, wird die Bewertung angepasst und erhält die Obergrenze 49 (Gefährdet). AI Readiness liegt außerhalb.

60
Exzellent85-100Vorbildlich; erfüllt im Wesentlichen alle geprüften Kriterien
Gut70-84Gesund; geringfügige Lücken
Mittel50-69Akzeptabel mit deutlichen Lücken; Überprüfung empfohlen
Gefährdet30-49Erhebliche Schwächen; eine Übernahme erfordert Vorsicht
Kritisch1-29Schwerwiegende Probleme (aufgegeben, nur ein Maintainer, keine Hygiene)
VitalitätCommunity &VerbreitungNachhaltigkeit &GovernanceEngineering-QualitätSicherheitAI Readiness

Bewertungsprofil

Jede Achse ist eine Kategorie. Die Form zählt mehr als der Durchschnitt — ein gesundes Projekt füllt die gesamte Fläche, während ein Profil aus Spitzen und Kratern bedeutet, dass Stärke in einer Dimension Risiken in einer anderen verdeckt.

Eigentümerschaft

Woonggi MinPersönliches Konto
186 Follower180 öffentliche Reposseit März 2020

Dieses Repository gehört einem persönlichen Konto. Ein Projekt mit nur einem Eigentümer trägt ein höheres Kontinuitätsrisiko als ein organisationsgetragenes.

Paket-Ökosysteme

RegistryPaketVersionDownloads / MonatVersionenZuletzt veröffentlichtTags
npm@minpeter/opensearch0.1.13.07512vor 8 Tagenaifetchsearchwebsearch
npmopensearch-mcp0.2.131.47620vor 8 Tagenaimcpmodelcontextprotocolsearchwebsearch
npmopensearch-ai-sdk0.0.111.25212vor 8 Tagenaiai-sdkfetchsearchwebsearch

Metriken nach Kategorie

Vitalität

Lebt das Projekt — wird Code geschrieben und werden Releases ausgeliefert?

82Gut · 22 % des Gesamtindex
Wie die Bewertung erfolgt
36/36Push-Aktualität — letzter Push vor 1 Tagen
6.2/36Commit-Rhythmus — 9/52 Wochen mit Commits
17.6/18Commit-Volumen — 90 Commits im letzten Jahr
10/10OpenSSF Scorecard: Maintained — 30 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10
Verwendete Eingangsdaten
commits_last_year90
human_commit_share0,744
days_since_last_push1
active_weeks_last_year9

Release-Disziplin

100Exzellent
Wie die Bewertung erfolgt
27/27Liefert Releases aus — 41 Releases veröffentlicht
36/36Release-Aktualität — letztes Release vor 8 Tagen
27/27Release-Rhythmus — ein Release etwa alle 0,1 Tage
0/10OpenSSF Scorecard: Signed-Releases — keine Daten
Verwendete Eingangsdaten
releases_count41
latest_release_tagopensearch-mcp@0.2.13
releases_from_tagsnein
days_since_latest_release8
mean_days_between_releases0,1
Von der Bewertung ausgeschlossen (keine Daten oder nicht anwendbar): OpenSSF Scorecard: Signed-Releases. Die verbleibenden Gewichte wurden renormalisiert.

Community & Verbreitung

Hat das Projekt Nutzer, Downloads, Aufmerksamkeit und ein einladendes Umfeld für Beitragende?

31Gefährdet · 18 % des Gesamtindex
Wie die Bewertung erfolgt
16.2/60Stars — 11 Stars
0/25Forks — 1 Forks
0/15Watcher — 0 Watcher
Verwendete Eingangsdaten
forks1
stars11
watchers0
growth_stateunverified
growth_factor_pct100
growth_unverified_reasonno_history
Wie die Bewertung erfolgt
22.5/22.5README
0/22.5Lizenz — keine Lizenzdatei erkannt
0/18CONTRIBUTING-Leitfaden
0/13.5Verhaltenskodex
0/7.2Issue-Vorlage
0/6.3PR-Vorlage
Verwendete Eingangsdaten
has_readmeja
has_licensenein
has_contributingnein
has_issue_templatenein
has_code_of_conductnein
has_pull_request_templatenein
Wie die Bewertung erfolgt
50.2/80Downloads pro Monat — 5.803 Downloads/Monat über npm
0/20Abhängige in der Registry — von diesem Ökosystem nicht ausgewiesen
Verwendete Eingangsdaten
packages@minpeter/opensearch, opensearch-mcp, opensearch-ai-sdk
dependents
ecosystemsnpm
total_downloads
monthly_downloads5.803
Von der Bewertung ausgeschlossen (keine Daten oder nicht anwendbar): Abhängige in der Registry. Die verbleibenden Gewichte wurden renormalisiert.

Nachhaltigkeit & Governance

Überdauert das Projekt die Menschen, die es tragen — Bus-Faktor, Reaktionsfähigkeit, Trägerschaft und Paketpflege?

59Mittel · 24 % des Gesamtindex
Wie die Bewertung erfolgt
9/54Bus-Faktor — 1 Beitragende decken die Hälfte aller Commits ab
0/22.5Commit-Verteilung — wichtigste beitragende Person verfasste 100 % der Commits
1.4/13.5Breite der Beitragenden — 1 Beitragende
10/10OpenSSF Scorecard: Contributors — project has 5 contributing companies or organizations
Verwendete Eingangsdaten
bus_factor1
contributors_sampled1
top_contributor_share1
Wie die Bewertung erfolgt
0/46.8Issue-Lösungsquote — keine Issues oder keine Daten
35.7/38.3PR-Annahme — 70/75 entschiedene PRs gemergt
0/15OpenSSF Scorecard: Code-Review — Found 0/17 approved changesets -- score normalized to 0
Verwendete Eingangsdaten
merged_prs70
open_issues0
closed_issues0
issue_closed_ratio
closed_unmerged_prs5
Von der Bewertung ausgeschlossen (keine Daten oder nicht anwendbar): Issue-Lösungsquote. Die verbleibenden Gewichte wurden renormalisiert.
Wie die Bewertung erfolgt
10/30Organisatorische Trägerschaft — persönliches (Nutzer-)Konto
0/20Verifizierte Domain — für Nutzerkonten nicht anwendbar
16.3/25Reichweite des Inhabers — 186 Follower von minpeter
25/25Kontohistorie — 180 öffentliche Repos, Kontoalter ca. 6 Jahre
Verwendete Eingangsdaten
followers186
owner_typeUser
is_verified
owner_loginminpeter
public_repos180
account_age_days2.327
Von der Bewertung ausgeschlossen (keine Daten oder nicht anwendbar): Verifizierte Domain. Die verbleibenden Gewichte wurden renormalisiert.

Paketpflege

100Exzellent
Wie die Bewertung erfolgt
25/25Veröffentlicht & auflösbar — 3 Paket(e) auf npm
35/35Veröffentlichungsaktualität — letzte Veröffentlichung vor 8 Tagen
20/20Versionshistorie — 20 veröffentlichte Versionen
20/20Nicht veraltet — aktiv, nicht veraltet oder zurückgezogen
Verwendete Eingangsdaten
packages@minpeter/opensearch, opensearch-mcp, opensearch-ai-sdk
ecosystemsnpm
any_deprecatednein
min_days_since_publish8

Engineering-Qualität

Sind grundlegende Engineering- und Dokumentationspraktiken vorhanden?

59Mittel · 20 % des Gesamtindex
Wie die Bewertung erfolgt
24/24CI-Workflows — 4 Workflow(s)
24/24Tests vorhanden
0/16Linter-Konfiguration
0/9.6Pre-Commit-Hooks
6.4/6.4.editorconfig
18/20OpenSSF Scorecard: CI-Tests — 28 out of 30 merged PRs checked by a CI test -- score normalized to 9
Verwendete Eingangsdaten
has_cija
has_testsja
has_editorconfigja
has_linter_confignein
has_precommit_confignein

Dokumentation

40Gefährdet
Wie die Bewertung erfolgt
30/30README
0/25Dokumentationsverzeichnis
0/15Dokumentations-/Homepage-Site
10/10Repository-Beschreibung
0/10Topics
0/10Wiki
Verwendete Eingangsdaten
topics
has_wikinein
homepage
has_readmeja
has_docs_dirnein
has_descriptionja

Sicherheit

Sind die sichtbaren Sicherheits- und Lieferkettenpraktiken belastbar, ohne ungeklärte Exposition gegenüber Hochrisikojurisdiktionen?

68Mittel · 16 % des Gesamtindex
Wie die Bewertung erfolgt
7.5/7.5Binary-Artifacts — no binaries found in the repo
0/7.5Branch-Protection — keine Daten
2.2/2.5CI-Tests — 28 out of 30 merged PRs checked by a CI test -- score normalized to 9
0/2.5CII-Best-Practices — no effort to earn an OpenSSF best practices badge detected
0/7.5Code-Review — Found 0/17 approved changesets -- score normalized to 0
2.5/2.5Contributors — project has 5 contributing companies or organizations
10/10Dangerous-Workflow — no dangerous workflow patterns detected
7.5/7.5Dependency-Update-Tool — update tool detected
0/5Fuzzing — project is not fuzzed
0/2.5Lizenz — license file not detected
7.5/7.5Maintained — 30 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10
5/5Packaging — packaging workflow detected
0/5Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 0
4/5SAST — SAST tool detected but not run on all commits
0/5Security-Policy — security policy file not detected
0/7.5Signed-Releases — keine Daten
0/7.5Token-Permissions — detected GitHub workflow tokens with excessive permissions
7.5/7.5Vulnerabilities — 0 existing vulnerabilities detected
Verwendete Eingangsdaten
sourceopenssf_scorecard
checks_evaluated16
scorecard_versionv5.5.0
checks_inconclusive2
scorecard_aggregate6
Von der Bewertung ausgeschlossen (keine Daten oder nicht anwendbar): branch_protection, signed_releases. Die verbleibenden Gewichte wurden renormalisiert.
Wie die Bewertung erfolgt
35/35Direkte Abhängigkeiten ohne bekannte Advisories — keine direkte Abhängigkeit trägt ein bekanntes Advisory
25/25Indirekte Abhängigkeiten ohne bekannte Advisories — keine indirekte Abhängigkeit trägt ein bekanntes Advisory
0/40Keine offenen Advisories — kein Advisory trägt ein Veröffentlichungsdatum
Verwendete Eingangsdaten
sourceosv
advisories0
affected_packages0
assessed_packages164
unassessed_packages0
affected_by_severitynone
direct_affected_packages0
Von der Bewertung ausgeschlossen (keine Daten oder nicht anwendbar): Keine offenen Advisories. Die verbleibenden Gewichte wurden renormalisiert. Abgeglichen wurde die Laufzeit-Abhängigkeitshülle von npm:@minpeter/opensearch@0.1.1 — das, was die Installation des veröffentlichten Pakets nach sich zieht — mit 164 Paketen. Erreichbarkeit wird nicht analysiert.

AI Readiness

Wie gut ist das Repository dafür ausgestattet, mit KI-Coding-Agenten entwickelt und gepflegt zu werden? Ein unabhängiges, experimentelles Badge — Gewicht 0,0, es wird eigenständig ausgewiesen und verändert den Gesamt-Gesundheitswert nicht.

66Mittel · 0 % des Gesamtindex
Wie die Bewertung erfolgt
45/45Agentenanweisungen — AGENTS.md
0/15Maschinenlesbare Doku (llms.txt)
40/40Lesbare Commit-Historie — 66 von 67 menschlichen Commits benennen ihre Absicht (strukturierter Betreff oder erläuternder Text)
Verwendete Eingangsdaten
has_llms_txtnein
legible_history_share0,985
agent_instruction_filesAGENTS.md
agent_instruction_max_bytes5.028
Wie die Bewertung erfolgt
0/18Bootstrap mit einem Befehl
22/22Automatisierte Tests
0/11Lint-/Format-Konfiguration
11/11Statische Typprüfung — packages/opensearch-ai-sdk/tsconfig.json, packages/opensearch-mcp/tsconfig.json, packages/opensearch/tsconfig.json, tsconfig.json
10/10Reproduzierbare Umgebung — lockfile
4.4/10Belegte Agentenpraxis — 2 der letzten 90 Commits von Agenten verfasst oder ihnen zugeschrieben
8/8Automatisierte Wartung — 4 der letzten 90 Commits sind automatisierte Abhängigkeits-Updates
0/10OpenSSF Scorecard: Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 0
Verwendete Eingangsdaten
has_nixnein
has_testsja
lockfilespnpm-lock.yaml
has_dockerfilenein
typed_languageja
bootstrap_files
has_devcontainernein
has_linter_confignein
typecheck_configspackages/opensearch-ai-sdk/tsconfig.json, packages/opensearch-mcp/tsconfig.json, packages/opensearch/tsconfig.json, tsconfig.json
agent_commit_share0,022
toolchain_manifests
dependency_bot_commit_share0,044
Wie die Bewertung erfolgt
45/45Typprüfbarer Code — TypeScript (statisch typisiert)
55/55Handhabbare Dateigrößen — 0/265 Quelldateien über 60 KB
Verwendete Eingangsdaten
primary_languageTypeScript
largest_source_bytes23.918
source_files_sampled265
oversized_source_files0
Wie die Bewertung erfolgt
0/40API-Schema (OpenAPI/GraphQL/proto)
20/20MCP-Server
0/40Lauffähige Beispiele
Verwendete Eingangsdaten
example_dirs
has_mcp_signalja
api_schema_files

Eckdaten

11GitHub-Sterne
1Mitwirkende
90Commits, letzte 12 Monate
1Tage seit letztem Push
41Releases
1Bus-Faktor
0offene Issues
npmPaket-Ökosysteme

Warnungen zur Datenerhebung

  • Star history unavailable: GitHub GraphQL error: Resource not accessible by personal access token

Weitere Details

OpenSSF Scorecard 6.0 / 10
6.0Gesamtwert

Unabhängige, werkzeugneutrale Sicherheitsbewertung durch das quelloffene OpenSSF Scorecard. Jede Prüfung honoriert eine Sicherheits-Praxis, nicht das Werkzeug eines bestimmten Anbieters. Prüfungen, die Scorecard nicht ermitteln konnte, sind mit k. A. markiert und vom Sicherheitswert ausgeschlossen (nie als null gezählt).Scorecard v5.5.0 · 2026-07-30 12:17 UTC

10Binary-Artifactsno binaries found in the repo
k. A.Branch-Protectioninternal error: error during branchesHandler.setup: internal error: some github tokens can't read classic branch protection rules: https://github.com/ossf/scorecard-action/blob/main/docs/authentication/fine-grained-auth-token.md
9CI-Tests28 out of 30 merged PRs checked by a CI test -- score normalized to 9
0CII-Best-Practicesno effort to earn an OpenSSF best practices badge detected
0Code-ReviewFound 0/17 approved changesets -- score normalized to 0
10Contributorsproject has 5 contributing companies or organizations
10Dangerous-Workflowno dangerous workflow patterns detected
10Dependency-Update-Toolupdate tool detected
0Fuzzingproject is not fuzzed
0Licenselicense file not detected
10Maintained30 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10
10Packagingpackaging workflow detected
0Pinned-Dependenciesdependency not pinned by hash detected -- score normalized to 0
8SASTSAST tool detected but not run on all commits
0Security-Policysecurity policy file not detected
k. A.Signed-Releasesno releases found
0Token-Permissionsdetected GitHub workflow tokens with excessive permissions
10Vulnerabilities0 existing vulnerabilities detected
Direkte Abhängigkeiten 16
RegistryPaketVersionsvorgabeManifest
npm@minpeter/opensearch^0.1.0packages/opensearch-ai-sdk/package.json
npmzod^4.4.3packages/opensearch-ai-sdk/package.json
npm@minpeter/opensearch^0.1.0packages/opensearch-mcp/package.json
npm@modelcontextprotocol/sdk^1.29.0packages/opensearch-mcp/package.json
npmzod^4.4.3packages/opensearch-mcp/package.json
npm@cfworker/json-schema^4.1.1packages/opensearch/package.json
npm@modelcontextprotocol/sdk^1.29.0packages/opensearch/package.json
npm@mozilla/readability^0.6.0packages/opensearch/package.json
npmcheerio^1.2.0packages/opensearch/package.json
npmjsdom^29.1.1packages/opensearch/package.json
npmp-retry^8.0.0packages/opensearch/package.json
npmturndown^7.2.4packages/opensearch/package.json
npmturndown-plugin-gfm^1.0.2packages/opensearch/package.json
npmundici^8.9.0packages/opensearch/package.json
npmunpdf^1.8.0packages/opensearch/package.json
npmzod^4.4.3packages/opensearch/package.json
Alle Abhängigkeiten 482

Vollständig aufgelöster Abhängigkeitssatz aus dem GitHub-Abhängigkeitsgraphen: 24 direkte und 458 indirekte (transitive) Pakete. Die transitive Hülle ist vollständig, wenn das Repository eine Lockfile eincheckt.

RegistryPaketVersionBeziehung
npm@cfworker/json-schema4.1.1direkt
npm@cfworker/json-schema^4.1.1direkt
npm@minpeter/opensearch^0.1.0direkt
npm@modelcontextprotocol/sdk1.30.0direkt
npm@modelcontextprotocol/sdk^1.29.0direkt
npm@mozilla/readability0.6.0direkt
npm@mozilla/readability^0.6.0direkt
npmcheerio1.2.0direkt
npmcheerio^1.2.0direkt
npmjsdom29.1.1direkt
npmjsdom^29.1.1direkt
npmp-retry8.0.0direkt
npmp-retry^8.0.0direkt
npmturndown7.2.4direkt
npmturndown^7.2.4direkt
npmturndown-plugin-gfm1.0.2direkt
npmturndown-plugin-gfm^1.0.2direkt
npmundici7.29.0direkt
npmundici8.9.0direkt
npmundici^8.9.0direkt
npmunpdf1.8.0direkt
npmunpdf^1.8.0direkt
npmzod4.4.3direkt
npmzod^4.4.3direkt
npm@ai-sdk/gateway4.0.28indirekt
npm@ai-sdk/provider4.0.3indirekt
npm@ai-sdk/provider-utils5.0.12indirekt
npm@andrewbranch/untar.js1.0.3indirekt
npm@arethetypeswrong/cli0.18.5indirekt
npm@arethetypeswrong/core0.18.5indirekt
npm@asamuzakjp/css-color5.1.11indirekt
npm@asamuzakjp/dom-selector7.1.1indirekt
npm@asamuzakjp/generational-cache1.0.1indirekt
npm@asamuzakjp/nwsapi2.3.9indirekt
npm@babel/helper-string-parser7.29.7indirekt
npm@babel/helper-validator-identifier7.29.7indirekt
npm@babel/parser7.29.7indirekt
npm@babel/types7.29.7indirekt
npm@bcoe/v8-coverage1.0.2indirekt
npm@biomejs/biome2.5.5indirekt
npm@biomejs/cli-darwin-arm642.5.5indirekt
npm@biomejs/cli-darwin-x642.5.5indirekt
npm@biomejs/cli-linux-arm642.5.5indirekt
npm@biomejs/cli-linux-arm64-musl2.5.5indirekt
npm@biomejs/cli-linux-x642.5.5indirekt
npm@biomejs/cli-linux-x64-musl2.5.5indirekt
npm@biomejs/cli-win32-arm642.5.5indirekt
npm@biomejs/cli-win32-x642.5.5indirekt
npm@braidai/lang1.1.2indirekt
npm@bramus/specificity2.4.2indirekt
npm@clack/core1.4.3indirekt
npm@clack/prompts1.7.0indirekt
npm@colors/colors1.5.0indirekt
npm@csstools/color-helpers6.1.0indirekt
npm@csstools/css-calc3.3.0indirekt
npm@csstools/css-color-parser4.1.10indirekt
npm@csstools/css-parser-algorithms4.0.0indirekt
npm@csstools/css-syntax-patches-for-csstree1.1.7indirekt
npm@csstools/css-tokenizer4.0.0indirekt
npm@emnapi/core1.11.2indirekt
npm@emnapi/runtime1.11.2indirekt
npm@emnapi/wasi-threads1.2.2indirekt
npm@esbuild/aix-ppc640.28.1indirekt
npm@esbuild/android-arm0.28.1indirekt
npm@esbuild/android-arm640.28.1indirekt
npm@esbuild/android-x640.28.1indirekt
npm@esbuild/darwin-arm640.28.1indirekt
npm@esbuild/darwin-x640.28.1indirekt
npm@esbuild/freebsd-arm640.28.1indirekt
npm@esbuild/freebsd-x640.28.1indirekt
npm@esbuild/linux-arm0.28.1indirekt
npm@esbuild/linux-arm640.28.1indirekt
npm@esbuild/linux-ia320.28.1indirekt
npm@esbuild/linux-loong640.28.1indirekt
npm@esbuild/linux-mips64el0.28.1indirekt
npm@esbuild/linux-ppc640.28.1indirekt
npm@esbuild/linux-riscv640.28.1indirekt
npm@esbuild/linux-s390x0.28.1indirekt
npm@esbuild/linux-x640.28.1indirekt
npm@esbuild/netbsd-arm640.28.1indirekt
npm@esbuild/netbsd-x640.28.1indirekt
npm@esbuild/openbsd-arm640.28.1indirekt
npm@esbuild/openbsd-x640.28.1indirekt
npm@esbuild/openharmony-arm640.28.1indirekt
npm@esbuild/sunos-x640.28.1indirekt
npm@esbuild/win32-arm640.28.1indirekt
npm@esbuild/win32-ia320.28.1indirekt
npm@esbuild/win32-x640.28.1indirekt
npm@eslint-community/eslint-utils4.10.1indirekt
npm@exodus/bytes1.15.1indirekt
npm@hono/node-server2.0.12indirekt
npm@jridgewell/resolve-uri3.1.2indirekt
npm@jridgewell/sourcemap-codec1.5.5indirekt
npm@jridgewell/trace-mapping0.3.31indirekt
npm@loaderkit/resolve1.0.6indirekt
npm@mixmark-io/domino2.2.0indirekt
npm@napi-rs/wasm-runtime1.1.6indirekt
npm@oxc-project/types0.140.0indirekt
npm@quansync/fs1.0.0indirekt
npm@rainbowatcher/toml-edit-js0.6.5indirekt
npm@rolldown/binding-android-arm641.2.0indirekt
npm@rolldown/binding-darwin-arm641.2.0indirekt
npm@rolldown/binding-darwin-x641.2.0indirekt
npm@rolldown/binding-freebsd-x641.2.0indirekt
npm@rolldown/binding-linux-arm-gnueabihf1.2.0indirekt
npm@rolldown/binding-linux-arm64-gnu1.2.0indirekt
npm@rolldown/binding-linux-arm64-musl1.2.0indirekt
npm@rolldown/binding-linux-ppc64-gnu1.2.0indirekt
npm@rolldown/binding-linux-s390x-gnu1.2.0indirekt
npm@rolldown/binding-linux-x64-gnu1.2.0indirekt
npm@rolldown/binding-linux-x64-musl1.2.0indirekt
npm@rolldown/binding-openharmony-arm641.2.0indirekt
npm@rolldown/binding-wasm32-wasi1.2.0indirekt
npm@rolldown/binding-win32-arm64-msvc1.2.0indirekt
npm@rolldown/binding-win32-x64-msvc1.2.0indirekt
npm@rolldown/pluginutils1.0.1indirekt
npm@rollup/rollup-android-arm-eabi4.62.3indirekt
npm@rollup/rollup-android-arm644.62.3indirekt
npm@rollup/rollup-darwin-arm644.62.3indirekt
npm@rollup/rollup-darwin-x644.62.3indirekt
npm@rollup/rollup-freebsd-arm644.62.3indirekt
npm@rollup/rollup-freebsd-x644.62.3indirekt
npm@rollup/rollup-linux-arm-gnueabihf4.62.3indirekt
npm@rollup/rollup-linux-arm-musleabihf4.62.3indirekt
npm@rollup/rollup-linux-arm64-gnu4.62.3indirekt
npm@rollup/rollup-linux-arm64-musl4.62.3indirekt
npm@rollup/rollup-linux-loong64-gnu4.62.3indirekt
npm@rollup/rollup-linux-loong64-musl4.62.3indirekt
npm@rollup/rollup-linux-ppc64-gnu4.62.3indirekt
npm@rollup/rollup-linux-ppc64-musl4.62.3indirekt
npm@rollup/rollup-linux-riscv64-gnu4.62.3indirekt
npm@rollup/rollup-linux-riscv64-musl4.62.3indirekt
npm@rollup/rollup-linux-s390x-gnu4.62.3indirekt
npm@rollup/rollup-linux-x64-gnu4.62.3indirekt
npm@rollup/rollup-linux-x64-musl4.62.3indirekt
npm@rollup/rollup-openbsd-x644.62.3indirekt
npm@rollup/rollup-openharmony-arm644.62.3indirekt
npm@rollup/rollup-win32-arm64-msvc4.62.3indirekt
npm@rollup/rollup-win32-ia32-msvc4.62.3indirekt
npm@rollup/rollup-win32-x64-gnu4.62.3indirekt
npm@rollup/rollup-win32-x64-msvc4.62.3indirekt
npm@sindresorhus/is4.6.0indirekt
npm@standard-schema/spec1.1.0indirekt
npm@turbo/darwin-642.10.7indirekt
npm@turbo/darwin-arm642.10.7indirekt
npm@turbo/linux-642.10.7indirekt
npm@turbo/linux-arm642.10.7indirekt
npm@turbo/windows-642.10.7indirekt
npm@turbo/windows-arm642.10.7indirekt
npm@tybys/wasm-util0.10.3indirekt
npm@types/chai5.2.3indirekt
npm@types/deep-eql4.0.2indirekt
npm@types/estree1.0.9indirekt
npm@types/jsdom28.0.3indirekt
npm@types/node26.1.2indirekt
npm@types/tough-cookie4.0.5indirekt
npm@types/turndown5.0.6indirekt
npm@typescript-eslint/project-service8.65.0indirekt
npm@typescript-eslint/scope-manager8.65.0indirekt
npm@typescript-eslint/tsconfig-utils8.65.0indirekt
npm@typescript-eslint/types8.65.0indirekt
npm@typescript-eslint/typescript-estree8.65.0indirekt
npm@typescript-eslint/utils8.65.0indirekt
npm@typescript-eslint/visitor-keys8.65.0indirekt
npm@typescript/typescript-aix-ppc647.0.2indirekt
npm@typescript/typescript-darwin-arm647.0.2indirekt
npm@typescript/typescript-darwin-x647.0.2indirekt
npm@typescript/typescript-freebsd-arm647.0.2indirekt
npm@typescript/typescript-freebsd-x647.0.2indirekt
npm@typescript/typescript-linux-arm7.0.2indirekt
npm@typescript/typescript-linux-arm647.0.2indirekt
npm@typescript/typescript-linux-loong647.0.2indirekt
npm@typescript/typescript-linux-mips64el7.0.2indirekt
npm@typescript/typescript-linux-ppc647.0.2indirekt
npm@typescript/typescript-linux-riscv647.0.2indirekt
npm@typescript/typescript-linux-s390x7.0.2indirekt
npm@typescript/typescript-linux-x647.0.2indirekt
npm@typescript/typescript-netbsd-arm647.0.2indirekt
npm@typescript/typescript-netbsd-x647.0.2indirekt
npm@typescript/typescript-openbsd-arm647.0.2indirekt
npm@typescript/typescript-openbsd-x647.0.2indirekt
npm@typescript/typescript-sunos-x647.0.2indirekt
npm@typescript/typescript-win32-arm647.0.2indirekt
npm@typescript/typescript-win32-x647.0.2indirekt
npm@vercel/oidc3.2.0indirekt
npm@vitest/coverage-v84.1.10indirekt
npm@vitest/expect4.1.10indirekt
npm@vitest/mocker4.1.10indirekt
npm@vitest/pretty-format4.1.10indirekt
npm@vitest/runner4.1.10indirekt
npm@vitest/snapshot4.1.10indirekt
npm@vitest/spy4.1.10indirekt
npm@vitest/utils4.1.10indirekt
npm@workflow/serde4.1.0indirekt
npm@yuku-codegen/binding-darwin-arm640.5.48indirekt
npm@yuku-codegen/binding-darwin-x640.5.48indirekt
npm@yuku-codegen/binding-freebsd-x640.5.48indirekt
npm@yuku-codegen/binding-linux-arm-gnu0.5.48indirekt
npm@yuku-codegen/binding-linux-arm-musl0.5.48indirekt
npm@yuku-codegen/binding-linux-arm64-gnu0.5.48indirekt
npm@yuku-codegen/binding-linux-arm64-musl0.5.48indirekt
npm@yuku-codegen/binding-linux-x64-gnu0.5.48indirekt
npm@yuku-codegen/binding-linux-x64-musl0.5.48indirekt
npm@yuku-codegen/binding-win32-arm640.5.48indirekt
npm@yuku-codegen/binding-win32-x640.5.48indirekt
npm@yuku-parser/binding-darwin-arm640.5.48indirekt
npm@yuku-parser/binding-darwin-x640.5.48indirekt
npm@yuku-parser/binding-freebsd-x640.5.48indirekt
npm@yuku-parser/binding-linux-arm-gnu0.5.48indirekt
npm@yuku-parser/binding-linux-arm-musl0.5.48indirekt
npm@yuku-parser/binding-linux-arm64-gnu0.5.48indirekt
npm@yuku-parser/binding-linux-arm64-musl0.5.48indirekt
npm@yuku-parser/binding-linux-x64-gnu0.5.48indirekt
npm@yuku-parser/binding-linux-x64-musl0.5.48indirekt
npm@yuku-parser/binding-win32-arm640.5.48indirekt
npm@yuku-parser/binding-win32-x640.5.48indirekt
npm@yuku-toolchain/types0.5.43indirekt
npmaccepts2.0.0indirekt
npmai7.0.37indirekt
npmajv8.20.0indirekt
npmajv-formats3.0.1indirekt
npmansi-escapes7.3.0indirekt
npmansi-regex5.0.1indirekt
npmansi-regex6.2.2indirekt
npmansi-styles4.3.0indirekt
npmansis4.3.1indirekt
npmany-promise1.3.0indirekt
npmassertion-error2.0.1indirekt
npmast-v8-to-istanbul1.0.5indirekt
npmbalanced-match4.0.4indirekt
npmbidi-js1.0.3indirekt
npmbody-parser2.3.0indirekt
npmboolbase1.0.0indirekt
npmbrace-expansion5.0.8indirekt
npmbytes3.1.2indirekt
npmcac7.0.0indirekt
npmcall-bind-apply-helpers1.0.2indirekt
npmcall-bound1.0.4indirekt
npmchai6.2.2indirekt
npmchalk4.1.2indirekt
npmchalk5.6.2indirekt
npmchar-regex1.0.2indirekt
npmcheerio-select2.1.0indirekt
npmcitty0.2.2indirekt
npmcjs-module-lexer1.4.3indirekt
npmcli-highlight2.1.11indirekt
npmcli-table30.6.5indirekt
npmcliui7.0.4indirekt
npmcolor-convert2.0.1indirekt
npmcolor-name1.1.4indirekt
npmcommander10.0.1indirekt
npmcommander15.0.0indirekt
npmcontent-disposition1.1.0indirekt
npmcontent-type1.0.5indirekt
npmcontent-type2.0.0indirekt
npmconvert-source-map2.0.0indirekt
npmcookie0.7.2indirekt
npmcookie-signature1.2.2indirekt
npmcors2.8.6indirekt
npmcross-spawn7.0.6indirekt
npmcss-select5.2.2indirekt
npmcss-tree3.2.1indirekt
npmcss-what6.2.2indirekt
npmdata-urls7.0.0indirekt
npmdebug4.4.3indirekt
npmdecimal.js10.6.0indirekt
npmdeepmerge4.3.1indirekt
npmdefu6.1.7indirekt
npmdepd2.0.0indirekt
npmdom-serializer2.0.0indirekt
npmdomelementtype2.3.0indirekt
npmdomhandler5.0.3indirekt
npmdomutils3.2.2indirekt
npmdts-resolver3.0.0indirekt
npmdunder-proto1.0.1indirekt
npmee-first1.1.1indirekt
npmemoji-regex8.0.0indirekt
npmemojilib2.4.0indirekt
npmempathic2.0.1indirekt
npmencodeurl2.0.0indirekt
npmencoding-sniffer0.2.1indirekt
npmentities4.5.0indirekt
npmentities6.0.1indirekt
npmentities7.0.1indirekt
npmentities8.0.0indirekt
npmenvironment1.1.0indirekt
npmes-define-property1.0.1indirekt
npmes-errors1.3.0indirekt
npmes-module-lexer2.3.1indirekt
npmes-object-atoms1.1.2indirekt
npmesbuild0.28.1indirekt
npmesbuild^0.28.1indirekt
npmescalade3.2.0indirekt
npmescape-html1.0.3indirekt
npmeslint-visitor-keys3.4.3indirekt
npmeslint-visitor-keys5.0.1indirekt
npmestree-walker3.0.3indirekt
npmetag1.8.1indirekt
npmeventsource3.0.7indirekt
npmeventsource-parser3.1.0indirekt
npmexpect-type1.4.0indirekt
npmexpress5.2.1indirekt
npmexpress-rate-limit8.6.1indirekt
npmfast-deep-equal3.1.3indirekt
npmfast-string-truncated-width3.0.3indirekt
npmfast-string-width3.0.2indirekt
npmfast-uri3.1.4indirekt
npmfast-wrap-ansi0.2.2indirekt
npmfdir6.5.0indirekt
npmfflate0.8.3indirekt
npmfinalhandler2.1.1indirekt
npmforwarded0.2.0indirekt
npmfresh2.0.0indirekt
npmfsevents2.3.3indirekt
npmfunction-bind1.1.2indirekt
npmget-caller-file2.0.5indirekt
npmget-intrinsic1.3.0indirekt
npmget-proto1.0.1indirekt
npmget-tsconfig5.0.0-beta.5indirekt
npmglob13.0.6indirekt
npmgopd1.2.0indirekt
npmhas-flag4.0.0indirekt
npmhas-symbols1.1.0indirekt
npmhasown2.0.4indirekt
npmhighlight.js10.7.3indirekt
npmhono4.12.32indirekt
npmhookable6.1.1indirekt
npmhtml-encoding-sniffer6.0.0indirekt
npmhtml-escaper2.0.2indirekt
npmhtmlparser210.1.0indirekt
npmhttp-errors2.0.1indirekt
npmiconv-lite0.6.3indirekt
npmiconv-lite0.7.3indirekt
npmimport-without-cache0.4.0indirekt
npminherits2.0.4indirekt
npmip-address10.3.1indirekt
npmipaddr.js1.9.1indirekt
npmis-fullwidth-code-point3.0.0indirekt
npmis-network-error1.3.2indirekt
npmis-potential-custom-element-name1.0.1indirekt
npmis-promise4.0.0indirekt
npmisexe2.0.0indirekt
npmistanbul-lib-coverage3.2.2indirekt
npmistanbul-lib-report3.0.1indirekt
npmistanbul-reports3.2.0indirekt
npmjose6.2.4indirekt
npmjs-tokens10.0.0indirekt
npmjson-schema0.4.0indirekt
npmjson-schema-traverse1.0.0indirekt
npmjson-schema-typed8.0.2indirekt
npmjsonc-parser3.3.1indirekt
npmlru-cache11.5.2indirekt
npmmagic-string0.30.21indirekt
npmmagicast0.5.3indirekt
npmmake-dir4.0.0indirekt
npmmarked9.1.6indirekt
npmmarked-terminal7.3.0indirekt
npmmath-intrinsics1.1.0indirekt
npmmdn-data2.27.1indirekt
npmmedia-typer1.1.1indirekt
npmmerge-descriptors2.0.0indirekt
npmmime-db1.54.0indirekt
npmmime-types3.0.2indirekt
npmminimatch10.2.6indirekt
npmminipass7.1.3indirekt
npmms2.1.3indirekt
npmmz2.7.0indirekt
npmnanoid3.3.16indirekt
npmnegotiator1.0.0indirekt
npmnode-emoji2.2.0indirekt
npmnth-check2.1.1indirekt
npmnypm0.6.8indirekt
npmobject-assign4.1.1indirekt
npmobject-inspect1.13.4indirekt
npmobug2.1.4indirekt
npmon-finished2.4.1indirekt
npmonce1.4.0indirekt
npmparse55.1.1indirekt
npmparse56.0.1indirekt
npmparse57.3.0indirekt
npmparse58.0.1indirekt
npmparse5-htmlparser2-tree-adapter6.0.1indirekt
npmparse5-htmlparser2-tree-adapter7.1.0indirekt
npmparse5-parser-stream7.1.2indirekt
npmparseurl1.3.3indirekt
npmpath-key3.1.1indirekt
npmpath-scurry2.0.2indirekt
npmpath-to-regexp8.4.2indirekt
npmpathe2.0.3indirekt
npmpicocolors1.1.1indirekt
npmpicomatch4.0.5indirekt
npmpkce-challenge5.0.1indirekt
npmpostcss8.5.23indirekt
npmproxy-addr2.0.7indirekt
npmpunycode2.3.1indirekt
npmqs6.15.3indirekt
npmquansync1.0.0indirekt
npmrange-parser1.3.0indirekt
npmraw-body3.0.2indirekt
npmrequire-directory2.1.1indirekt
npmrequire-from-string2.0.2indirekt
npmresolve-pkg-maps1.0.0indirekt
npmrolldown1.2.0indirekt
npmrolldown-plugin-dts0.27.2indirekt
npmrollup4.62.3indirekt
npmrouter2.2.0indirekt
npmsafer-buffer2.1.2indirekt
npmsaxes6.0.0indirekt
npmsemver7.8.5indirekt
npmsend1.2.1indirekt
npmserve-static2.2.1indirekt
npmsetprototypeof1.2.0indirekt
npmshebang-command2.0.0indirekt
npmshebang-regex3.0.0indirekt
npmside-channel1.1.1indirekt
npmside-channel-list1.0.1indirekt
npmside-channel-map1.0.1indirekt
npmside-channel-weakmap1.0.2indirekt
npmsiginfo2.0.0indirekt
npmsisteransi1.0.5indirekt
npmskin-tone2.0.0indirekt
npmsource-map-js1.2.1indirekt
npmstackback0.0.2indirekt
npmstatuses2.0.2indirekt
npmstd-env4.2.0indirekt
npmstring-width4.2.3indirekt
npmstrip-ansi6.0.1indirekt
npmsupports-color7.2.0indirekt
npmsupports-hyperlinks3.2.0indirekt
npmsymbol-tree3.2.4indirekt
npmtegami1.2.7indirekt
npmthenify3.3.1indirekt
npmthenify-all1.6.0indirekt
npmtinybench2.9.0indirekt
npmtinyexec1.2.4indirekt
npmtinyglobby0.2.17indirekt
npmtinyrainbow3.1.0indirekt
npmtldts7.4.9indirekt
npmtldts-core7.4.9indirekt
npmtoidentifier1.0.1indirekt
npmtough-cookie6.0.2indirekt
npmtr466.0.0indirekt
npmtree-kill1.2.2indirekt
npmts-api-utils2.5.0indirekt
npmtsdown0.22.14indirekt
npmtslib2.8.1indirekt
npmturbo2.10.7indirekt
npmtype-is2.1.0indirekt
npmtypescript5.6.1-rcindirekt
npmtypescript7.0.2indirekt
npmultracite7.9.4indirekt
npmunconfig-core7.5.0indirekt
npmundici-types7.29.0indirekt
npmundici-types8.3.0indirekt
npmunicode-emoji-modifier-base1.0.0indirekt
npmunpipe1.0.0indirekt
npmvalidate-npm-package-name5.0.1indirekt
npmvary1.1.2indirekt
npmverkit0.3.1indirekt
npmvite7.3.5indirekt
npmvitest4.1.10indirekt
npmw3c-xmlserializer5.0.0indirekt
npmwebidl-conversions8.0.1indirekt
npmwhatwg-encoding3.1.1indirekt
npmwhatwg-mimetype4.0.0indirekt
npmwhatwg-mimetype5.0.0indirekt
npmwhatwg-url16.0.1indirekt
npmwhich2.0.2indirekt
npmwhy-is-node-running2.3.0indirekt
npmwrap-ansi7.0.0indirekt
npmwrappy1.0.2indirekt
npmwreq-js2.3.1indirekt
npmxml-name-validator5.0.0indirekt
npmxmlchars2.2.0indirekt
npmy18n5.0.8indirekt
npmyaml2.9.0indirekt
npmyargs16.2.2indirekt
npmyargs-parser20.2.9indirekt
npmyuku-ast0.1.7indirekt
npmyuku-codegen0.5.48indirekt
npmyuku-parser0.5.48indirekt
npmzod-to-json-schema3.25.2indirekt
Abhängigkeits-Advisories 0

Die Installation von npm:@minpeter/opensearch@0.1.1 zieht 164 Pakete nach sich, direkt und transitiv: 0 tragen bekannte Advisories, davon 0 direkte Abhängigkeiten.

Keine bekannten Advisories betreffen die bewerteten Abhängigkeiten.

Ein Advisory bedeutet, dass die im Abhängigkeitsgraphen erfasste Version in den betroffenen Bereich eines Advisories fällt. Erreichbarkeit wird nicht analysiert, und der Graph enthält Entwicklungs- und Test-Pins — ein Fund kann das Werkzeug betreffen und nicht die ausgelieferte Software.

JSON-Rohbericht maschinenlesbar
{
  "data": {
    "repo": {
      "topics": [],
      "is_fork": false,
      "size_kb": 2044,
      "has_wiki": false,
      "homepage": null,
      "languages": {
        "HTML": 30575,
        "JavaScript": 30129,
        "TypeScript": 952105
      },
      "pushed_at": "2026-07-28T19:58:36Z",
      "created_at": "2026-04-15T13:58:32Z",
      "owner_type": "User",
      "updated_at": "2026-07-28T20:00:27Z",
      "description": "Web search and page fetch for agents and TypeScript apps.",
      "is_archived": false,
      "is_disabled": false,
      "license_spdx": null,
      "default_branch": "main",
      "license_spdx_raw": null,
      "primary_language": "TypeScript",
      "significant_languages": [
        "TypeScript"
      ]
    },
    "owner": {
      "blog": null,
      "name": "Woonggi Min",
      "type": "User",
      "login": "minpeter",
      "company": null,
      "location": null,
      "followers": 186,
      "avatar_url": "https://avatars.githubusercontent.com/u/62207008?v=4",
      "created_at": "2020-03-15T12:45:45Z",
      "is_verified": null,
      "public_repos": 180,
      "account_age_days": 2327
    },
    "license": {
      "state": "absent",
      "spdx_id": null,
      "raw_spdx": null,
      "file_present": false,
      "scorecard_found": false,
      "profile_has_license": false
    },
    "activity": {
      "releases": [
        {
          "tag": "opensearch-mcp@0.2.13",
          "kind": "other",
          "published_at": "2026-07-21T18:34:44Z"
        },
        {
          "tag": "opensearch-ai-sdk@0.0.11",
          "kind": "other",
          "published_at": "2026-07-21T18:34:44Z"
        },
        {
          "tag": "@minpeter/opensearch@0.1.1",
          "kind": "other",
          "published_at": "2026-07-21T18:34:44Z"
        },
        {
          "tag": "opensearch-ai-sdk@0.0.10",
          "kind": "other",
          "published_at": "2026-07-21T11:15:54Z"
        },
        {
          "tag": "@minpeter/opensearch@0.1.0",
          "kind": "other",
          "published_at": "2026-07-21T11:15:54Z"
        },
        {
          "tag": "opensearch-mcp@0.2.12",
          "kind": "other",
          "published_at": "2026-07-21T11:15:54Z"
        },
        {
          "tag": "@minpeter/opensearch@0.0.10",
          "kind": "other",
          "published_at": "2026-07-21T08:19:46Z"
        },
        {
          "tag": "opensearch-mcp@0.2.11",
          "kind": "other",
          "published_at": "2026-07-21T08:19:46Z"
        },
        {
          "tag": "opensearch-ai-sdk@0.0.9",
          "kind": "other",
          "published_at": "2026-07-21T08:19:46Z"
        },
        {
          "tag": "@minpeter/opensearch@0.0.9",
          "kind": "other",
          "published_at": "2026-07-20T11:05:09Z"
        },
        {
          "tag": "opensearch-mcp@0.2.10",
          "kind": "other",
          "published_at": "2026-07-20T11:05:09Z"
        },
        {
          "tag": "opensearch-ai-sdk@0.0.8",
          "kind": "other",
          "published_at": "2026-07-20T11:05:09Z"
        },
        {
          "tag": "@minpeter/opensearch@0.0.8",
          "kind": "other",
          "published_at": "2026-07-20T10:31:54Z"
        },
        {
          "tag": "opensearch-ai-sdk@0.0.7",
          "kind": "other",
          "published_at": "2026-07-20T10:31:54Z"
        },
        {
          "tag": "opensearch-mcp@0.2.9",
          "kind": "other",
          "published_at": "2026-07-20T10:31:54Z"
        },
        {
          "tag": "opensearch-mcp@0.2.8",
          "kind": "other",
          "published_at": "2026-07-16T21:17:51Z"
        },
        {
          "tag": "opensearch-ai-sdk@0.0.6",
          "kind": "other",
          "published_at": "2026-07-16T20:52:06Z"
        },
        {
          "tag": "opensearch-mcp@0.2.7",
          "kind": "other",
          "published_at": "2026-07-16T20:52:06Z"
        },
        {
          "tag": "@minpeter/opensearch@0.0.7",
          "kind": "other",
          "published_at": "2026-07-16T20:52:06Z"
        },
        {
          "tag": "opensearch-mcp@0.2.6",
          "kind": "other",
          "published_at": "2026-07-16T17:54:07Z"
        },
        {
          "tag": "opensearch-ai-sdk@0.0.5",
          "kind": "other",
          "published_at": "2026-07-16T17:54:07Z"
        },
        {
          "tag": "@minpeter/opensearch@0.0.6",
          "kind": "other",
          "published_at": "2026-07-16T17:54:07Z"
        },
        {
          "tag": "@minpeter/opensearch@0.0.5",
          "kind": "other",
          "published_at": "2026-07-16T16:41:14Z"
        },
        {
          "tag": "opensearch-ai-sdk@0.0.4",
          "kind": "other",
          "published_at": "2026-07-16T16:41:14Z"
        },
        {
          "tag": "opensearch-mcp@0.2.5",
          "kind": "other",
          "published_at": "2026-07-16T16:41:14Z"
        },
        {
          "tag": "@minpeter/opensearch@0.0.4",
          "kind": "other",
          "published_at": "2026-06-18T15:04:15Z"
        },
        {
          "tag": "opensearch-ai-sdk@0.0.3",
          "kind": "other",
          "published_at": "2026-06-18T15:04:12Z"
        },
        {
          "tag": "opensearch-mcp@0.2.4",
          "kind": "other",
          "published_at": "2026-06-18T15:04:09Z"
        },
        {
          "tag": "opensearch-mcp@0.2.3",
          "kind": "other",
          "published_at": "2026-06-18T10:17:40Z"
        },
        {
          "tag": "opensearch-ai-sdk@0.0.2",
          "kind": "other",
          "published_at": "2026-06-18T10:17:36Z"
        },
        {
          "tag": "@minpeter/opensearch@0.0.3",
          "kind": "other",
          "published_at": "2026-06-18T10:17:34Z"
        },
        {
          "tag": "opensearch-ai-sdk@0.0.1",
          "kind": "other",
          "published_at": "2026-06-18T09:57:54Z"
        },
        {
          "tag": "opensearch-mcp@0.2.2",
          "kind": "other",
          "published_at": "2026-06-18T09:54:52Z"
        },
        {
          "tag": "@minpeter/opensearch@0.0.2",
          "kind": "other",
          "published_at": "2026-06-18T09:54:49Z"
        },
        {
          "tag": "opensearch-mcp@0.2.1",
          "kind": "other",
          "published_at": "2026-06-16T08:43:05Z"
        },
        {
          "tag": "opensearch-mcp@0.2.0",
          "kind": "other",
          "published_at": "2026-06-07T18:53:43Z"
        },
        {
          "tag": "v0.1.5",
          "kind": "patch",
          "published_at": "2026-04-16T18:17:48Z"
        },
        {
          "tag": "v0.1.4",
          "kind": "patch",
          "published_at": "2026-04-16T17:48:38Z"
        },
        {
          "tag": "v0.1.3",
          "kind": "patch",
          "published_at": "2026-04-16T16:04:36Z"
        },
        {
          "tag": "v0.1.2",
          "kind": "patch",
          "published_at": "2026-04-16T07:03:07Z"
        },
        {
          "tag": "v0.1.1",
          "kind": "patch",
          "published_at": "2026-04-16T03:19:38Z"
        }
      ],
      "recent_commits": [
        {
          "oid": "27583f15b67b9b961934ac947de4492da4488f0e",
          "body": "…ectory with 6 updates (#77)\n\n* chore(deps-dev): bump the development-dependencies group across 1 directory with 6 updates\n\nBumps the development-dependencies group with 6 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [@biomejs/biome](https://github.com/biomejs/biome/tre\n[…]\nnt.\n\n---------\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>\nCo-authored-by: minpeter <kali2005611@gmail.com>",
          "is_bot": true,
          "headline": "chore(deps-dev): bump the development-dependencies group across 1 dir…",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-07-28T19:58:35Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "584667174361c2ce01b6564136532f7ba855b80f",
          "body": "Bumps the production-dependencies group with 2 updates: [undici](https://github.com/nodejs/undici) and [unpdf](https://github.com/unjs/unpdf).\n\n\nUpdates `undici` from 8.7.0 to 8.9.0\n- [Release notes](https://github.com/nodejs/undici/releases)\n- [Commits](https://github.com/nodejs/undici/compare/v8.7\n[…]\nte:semver-minor\n  dependency-group: production-dependencies\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "chore(deps): bump the production-dependencies group with 2 updates (#75)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-07-28T19:14:05Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "adfc4dfdd1889575afc3eca5da69eed69a5f63f2",
          "body": "Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "Version Packages (#73)",
          "author_name": "github-actions[bot]",
          "author_login": "github-actions[bot]",
          "committed_at": "2026-07-21T18:33:40Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "28a6769ab77f8a81465a1432b62ae65abd3d708b",
          "body": "* feat(opensearch): add multi-provider code search\n\n* feat(opensearch-mcp): expose code search with gh authentication\n\n* feat(opensearch-ai-sdk): add code search tool\n\n* chore: bump code search packages as patch\n\n* fix: add code_search to packed MCP tool surface contract\n\n* fix(opensearch): escape backslashes before regexp delimiters",
          "is_bot": false,
          "headline": "feat: multi-provider code search (core, MCP, AI SDK) (#72)",
          "author_name": "Woonggi Min",
          "author_login": "minpeter",
          "committed_at": "2026-07-21T18:32:16Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9515c0c90d16fca4e93657b12d213dbb64066847",
          "body": "Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "Version Packages (#71)",
          "author_name": "github-actions[bot]",
          "author_login": "github-actions[bot]",
          "committed_at": "2026-07-21T11:15:11Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e243871d050e05c586209c1db11cd639c86b7f9e",
          "body": "…#70)\n\n* feat(opensearch): unify cache behavior, add bypass option, and add searchStream\n\n* docs(opensearch): document caching, streaming, and keyless quality guidance\n\n* fix(opensearch): propagate 451, emit operation events, and linearize stream drain",
          "is_bot": false,
          "headline": "feat: unify cache behavior, add bypass option, and add searchStream (…",
          "author_name": "Woonggi Min",
          "author_login": "minpeter",
          "committed_at": "2026-07-21T11:11:39Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "406a8b254ba08ac94efe94c442d4c833ebb46735",
          "body": "Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "Version Packages (#69)",
          "author_name": "github-actions[bot]",
          "author_login": "github-actions[bot]",
          "committed_at": "2026-07-21T08:18:58Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9a32593299005d85d9090b2a0044e7715fa32b89",
          "body": "* refactor(scripts): inline single-use spawn wrapper in tegami\n\n* refactor(opensearch-mcp): deduplicate tool error normalization\n\n* refactor(opensearch): remove AI slop across provider and fetch modules\n\n* refactor(opensearch): drop unused name parameter from internal parseFeed\n\n* refactor(opensearc\n[…]\nability docs\n\n* fix(opensearch): read all wreq bodies through the bounded reader\n\n* fix(opensearch): coalesce concurrent fetch cache misses\n\n* chore: add tegami entry for slop removal and review fixes",
          "is_bot": false,
          "headline": "refactor: remove AI slop, split oversized modules, and sweep repo (#68)",
          "author_name": "Woonggi Min",
          "author_login": "minpeter",
          "committed_at": "2026-07-21T08:09:28Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "738306a0aa947ea8e24b2402906f5ce4fe6e4da8",
          "body": "Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "Version Packages (#67)",
          "author_name": "github-actions[bot]",
          "author_login": "github-actions[bot]",
          "committed_at": "2026-07-20T11:04:30Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a7df8cd037a32d3824b7e5f3f650aab05e21aa44",
          "body": null,
          "is_bot": false,
          "headline": "chore: version packages (biome bump) (#66)",
          "author_name": "Woonggi Min",
          "author_login": "minpeter",
          "committed_at": "2026-07-20T10:59:11Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b6a21520a63a767daed25f0f1bea2f66cb2bbbb4",
          "body": "Biome 2.5.x introduces new lint rules. All 87 new diagnostics resolved:\n\n- useConsistentMethodSignatures: converted method signatures to\n  property-style arrow functions in interfaces\n- noAwaitInLoops: added targeted suppressions for intentional\n  sequential awaits (rate limiting, retry, bench timin\n[…]\npare functions to .sort() calls\n- useSortedKeys: suppressed where key order is semantically meaningful\n  (Reddit API query params)\n\nAll checks green: 234 files linted, typecheck clean, 479 tests pass.",
          "is_bot": false,
          "headline": "chore(deps): bump biome to 2.5.4 and ultracite to 7.9.4 (#65)",
          "author_name": "Woonggi Min",
          "author_login": "minpeter",
          "committed_at": "2026-07-20T10:57:32Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "81ca672e5b6e9c7be667fc1d09c8efa0a4263dd7",
          "body": "Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "Version Packages (#64)",
          "author_name": "github-actions[bot]",
          "author_login": "github-actions[bot]",
          "committed_at": "2026-07-20T10:31:13Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f00e759f0c390b0c90e09e1e2125eb248fbd262a",
          "body": "Add changelog entries for:\n- @minpeter/opensearch: undici 7 → 8 (patch)\n- opensearch-ai-sdk: ai SDK v7 type adaptations (patch)",
          "is_bot": false,
          "headline": "chore: version packages (#63)",
          "author_name": "Woonggi Min",
          "author_login": "minpeter",
          "committed_at": "2026-07-20T10:25:43Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e84712961f3c8d1370143fe783d6a231519ef880",
          "body": "- tsdown: ^0.22.8 → ^0.22.12 (patch)\n- ai: 6.0.207 → 7.0.30 (major, devDependency)\n\nai v7 breaking changes addressed:\n- ToolExecutionOptions is now generic: use <unknown> instead of bare\n- ToolExecutionOptions requires context property\n- Remove extends ToolSet from OpenSearchToolSet (ai v7 ToolSet index\n  signature is incompatible with custom tool interfaces)\n- Remove unused tool() validation calls\n- Convert method signatures to property-style for biome compliance",
          "is_bot": false,
          "headline": "chore(deps): bump tsdown to 0.22.12 and ai to 7.0.30 (#62)",
          "author_name": "Woonggi Min",
          "author_login": "minpeter",
          "committed_at": "2026-07-20T10:20:41Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9336b5b0fa8a4781a01721ddd902805d70dd6527",
          "body": "Bumps [undici](https://github.com/nodejs/undici) from 7.28.0 to 8.7.0.\n- [Release notes](https://github.com/nodejs/undici/releases)\n- [Commits](https://github.com/nodejs/undici/compare/v7.28.0...v8.7.0)\n\n---\nupdated-dependencies:\n- dependency-name: undici\n  dependency-version: 8.7.0\n  dependency-typ\n[…]\nirect:production\n  update-type: version-update:semver-major\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "chore(deps): bump undici from 7.28.0 to 8.7.0 (#55)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-07-20T10:08:04Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "bc39dfa572c9f28adeb99abf1fe8b3a143bbbc6e",
          "body": "Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 25.9.5 to 26.1.1.\n- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)\n- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)\n\n---\nupdated-depe\n[…]\nrect:development\n  update-type: version-update:semver-major\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "chore(deps-dev): bump @types/node from 25.9.5 to 26.1.1 (#56)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-07-20T10:07:39Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "df316ade910770d43fd97ad03df8d6b70437a30a",
          "body": "Release opensearch-mcp@0.2.8 with installed MCP protocol verification.",
          "is_bot": true,
          "headline": "chore: version packages (#61)",
          "author_name": "github-actions[bot]",
          "author_login": "github-actions[bot]",
          "committed_at": "2026-07-16T21:17:11Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a608f9b92679e6b4435298ff6895ccb9cd2b22ba",
          "body": "Exercise clean-installed and registry MCP binaries through initialize and tools/list, reject stale runtime versions and incomplete tool surfaces, and preserve primary protocol failures during cleanup.",
          "is_bot": false,
          "headline": "Verify packaged MCP protocol (#60)",
          "author_name": "Woonggi Min",
          "author_login": "minpeter",
          "committed_at": "2026-07-16T21:14:11Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c9249f6e454e54f15009b2614afd850dc824e466",
          "body": "Wait on npm packuments, retry clean registry installs across propagation lag, and cover retry semantics with executable release tests.",
          "is_bot": false,
          "headline": "Retry registry smoke after publish (#59)",
          "author_name": "Woonggi Min",
          "author_login": "minpeter",
          "committed_at": "2026-07-16T20:57:05Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "338a43d8443832188e74343d9501a85b2c521b7f",
          "body": "Publish @minpeter/opensearch 0.0.7, opensearch-ai-sdk 0.0.6, and opensearch-mcp 0.2.7.",
          "is_bot": true,
          "headline": "chore: version packages (#58)",
          "author_name": "github-actions[bot]",
          "author_login": "github-actions[bot]",
          "committed_at": "2026-07-16T20:51:27Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e9d164b281e48d92c4eceafee6c379d9f2665657",
          "body": "Declare the standard workspace pattern required by Tegami's npm client and add executable graph and changelog resolution coverage.",
          "is_bot": false,
          "headline": "Fix Tegami workspace discovery (#57)",
          "author_name": "Woonggi Min",
          "author_login": "minpeter",
          "committed_at": "2026-07-16T20:47:55Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "48f62c16c5088ba24da07da66ee66523504079ae",
          "body": "Bound caches and fetch resources, enforce Node network policy and HTTP 451 semantics, add structured observability and opt-in Ollama support, and expand CI, monitoring, security, package, and Tegami release QA.",
          "is_bot": false,
          "headline": "Harden runtime boundaries, QA, and monitoring (#52)",
          "author_name": "Woonggi Min",
          "author_login": "minpeter",
          "committed_at": "2026-07-16T20:41:00Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0210a5d91c846ca97b0944025b08b2dc2402c0f2",
          "body": "Publish @minpeter/opensearch 0.0.6, opensearch-ai-sdk 0.0.5, and opensearch-mcp 0.2.6.",
          "is_bot": true,
          "headline": "chore: version packages (#51)",
          "author_name": "github-actions[bot]",
          "author_login": "github-actions[bot]",
          "committed_at": "2026-07-16T17:53:22Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "846511316645ac81e11b1ab740237f5d3fa5b375",
          "body": "Enforce requested and default page-content limits after every provider and fallback, with regression tests, benchmark evidence, documentation, and patch release metadata.",
          "is_bot": false,
          "headline": "fix(opensearch): enforce fetch output limits (#50)",
          "author_name": "Woonggi Min",
          "author_login": "minpeter",
          "committed_at": "2026-07-16T17:43:12Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "11aa45489c87fe38da31fa88fb09ed46138d848f",
          "body": null,
          "is_bot": true,
          "headline": "chore: version packages (#49)",
          "author_name": "github-actions[bot]",
          "author_login": "github-actions[bot]",
          "committed_at": "2026-07-16T16:40:29Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "84ddaac26fcb8e7a39f3505cff10350c00a6daa4",
          "body": null,
          "is_bot": false,
          "headline": "fix(opensearch): bound batch fetch concurrency (#48)",
          "author_name": "Woonggi Min",
          "author_login": "minpeter",
          "committed_at": "2026-07-16T16:38:13Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "49d3439071d9f677744e96b1b73f51a4bd2b6b0a",
          "body": "TypeScript 7 replaces the JS compiler with a native binary, so tsup's\nrollup-plugin-dts path no longer works. Move package builds to tsdown\n(with rolldown-plugin-dts 0.27.2) and drop ignoreDeprecations for 6.0.\n\nAlso wire package export checks, edge-runtime verification, Node engines,\nand npm provenance into the publish/CI surface.",
          "is_bot": false,
          "headline": "chore: upgrade TypeScript to 7.0 and migrate builds to tsdown (#47)",
          "author_name": "Woonggi Min",
          "author_login": "minpeter",
          "committed_at": "2026-07-09T08:23:24Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ca5fe47b0fe200698359d9e99708d2249e2e1f27",
          "body": null,
          "is_bot": false,
          "headline": "chore: migrate releases to tegami (#46)",
          "author_name": "Woonggi Min",
          "author_login": "minpeter",
          "committed_at": "2026-06-29T11:59:45Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "250c36479c8421c24767a850eaa67b4fe344f86a",
          "body": "Some .turbo/cache files were re-added to the index after the previous\ngitignore commit (likely by a build/watch process during checkout).\nRemove all tracked .turbo files so .gitignore takes effect.",
          "is_bot": false,
          "headline": "chore: untrack .turbo cache regenerated after previous cleanup (#43)",
          "author_name": "Woonggi Min",
          "author_login": "minpeter",
          "committed_at": "2026-06-19T07:19:54Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6df73395c88c5aa793a06db2ff8423706d7dab10",
          "body": "Add .turbo to .gitignore caches section and untrack 15 previously\ncommitted cache files under .turbo/cache/ (local files preserved).",
          "is_bot": false,
          "headline": "chore: gitignore .turbo cache and remove tracked cache files (#42)",
          "author_name": "Woonggi Min",
          "author_login": "minpeter",
          "committed_at": "2026-06-19T07:18:06Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "708cdc81596c34301ab1728efed1a14a3b5d913e",
          "body": null,
          "is_bot": false,
          "headline": "docs: add README banner (#41)",
          "author_name": "Woonggi Min",
          "author_login": "minpeter",
          "committed_at": "2026-06-18T16:25:44Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "44b7c959f7dfd161591587e3f95cee44f1e03532",
          "body": null,
          "is_bot": false,
          "headline": "docs: polish root README overview (#40)",
          "author_name": "Woonggi Min",
          "author_login": "minpeter",
          "committed_at": "2026-06-18T15:12:35Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6a51afb280f7e62f87d5f8de23e6fcadd1c6980b",
          "body": "Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "chore: release (#39)",
          "author_name": "github-actions[bot]",
          "author_login": "github-actions[bot]",
          "committed_at": "2026-06-18T15:03:23Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "900a772e8ca96f25f48dc1dea69af0e8441ef85d",
          "body": null,
          "is_bot": false,
          "headline": "chore: add changeset for insane search parity (#38)",
          "author_name": "Woonggi Min",
          "author_login": "minpeter",
          "committed_at": "2026-06-18T15:00:37Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e2af34863fd0899a689dfeba0a6bbf69322f2e4f",
          "body": "* fix(ai-sdk): update repository.url to match renamed repo for npm provenance\n\nThe previous fix (PR #32) updated repository.url in the root, opensearch,\nand opensearch-mcp package.json files, but missed packages/opensearch-ai-sdk\nbecause it did not exist in the branch the fix was based on.\n\nopensear\n[…]\np.git\", expected to\n  match \"https://github.com/minpeter/opensearch\" from provenance\n\nSwitch to the plain HTTPS URL matching the provenance URL.\n\n* feat(opensearch): add insane-search parity fallbacks",
          "is_bot": false,
          "headline": "feat(opensearch): add insane-search parity fallbacks (#37)",
          "author_name": "Woonggi Min",
          "author_login": "minpeter",
          "committed_at": "2026-06-18T14:43:24Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "02e91cfbd6913c71c0ff2f91a1fcee4b7d2aad91",
          "body": "Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "chore: release (#36)",
          "author_name": "github-actions[bot]",
          "author_login": "github-actions[bot]",
          "committed_at": "2026-06-18T10:17:00Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "958ab723462052e44bad0f5af597196a4de8de80",
          "body": null,
          "is_bot": false,
          "headline": "fix(changeset): correct package name to @minpeter/opensearch (#35)",
          "author_name": "Woonggi Min",
          "author_login": "minpeter",
          "committed_at": "2026-06-18T10:14:27Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3e25c40f46e2a9d3912ebecdfa3198473b0f8533",
          "body": "* docs: move package details to opensearch-mcp README, slim root README\n\nRoot README now keeps a concise monorepo overview with a package tree.\nThe previous full README (client API, AI SDK tools, providers, config,\nmetrics) is relocated to packages/opensearch-mcp/README.md.\n\n* docs: add minimal READMEs to opensearch and opensearch-ai-sdk, slim mcp README",
          "is_bot": false,
          "headline": "docs: add minimal READMEs to all packages, slim root README (#34)",
          "author_name": "Woonggi Min",
          "author_login": "minpeter",
          "committed_at": "2026-06-18T10:10:04Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d46b14bc91b238a646d6da4554c6cf6f54a811bf",
          "body": "…enance (#33)\n\nThe previous fix (PR #32) updated repository.url in the root, opensearch,\nand opensearch-mcp package.json files, but missed packages/opensearch-ai-sdk\nbecause it did not exist in the branch the fix was based on.\n\nopensearch-ai-sdk@0.0.1 still fails to publish with E422:\n\n  Error verif\n[…]\nurl\" is\n  \"git+https://github.com/minpeter/opensearch-mcp.git\", expected to\n  match \"https://github.com/minpeter/opensearch\" from provenance\n\nSwitch to the plain HTTPS URL matching the provenance URL.",
          "is_bot": false,
          "headline": "fix(ai-sdk): update repository.url to match renamed repo for npm prov…",
          "author_name": "Woonggi Min",
          "author_login": "minpeter",
          "committed_at": "2026-06-18T09:57:10Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "89a541578746a0097240ef4b5907b8ede1b4527b",
          "body": "…#32)\n\nRepository was renamed from opensearch-mcp to opensearch, but the\nrepository.url field in package.json still pointed at the old name.\nThis caused npm OIDC trusted publishing to fail with E422:\n\n  Error verifying sigstore provenance bundle: Failed to validate\n  repository information: package.\n[…]\ncp.git\", expected to\n  match \"https://github.com/minpeter/opensearch\" from provenance\n\nSwitch all three package.json files to plain HTTPS without the git+\nprefix, matching the expected provenance URL.",
          "is_bot": false,
          "headline": "fix: update repository.url to match renamed repo for npm provenance (…",
          "author_name": "Woonggi Min",
          "author_login": "minpeter",
          "committed_at": "2026-06-18T09:54:17Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "b9dca8666f50ab8ed382a38c352868f4d521c445",
          "body": "Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "chore: release (#30)",
          "author_name": "github-actions[bot]",
          "author_login": "github-actions[bot]",
          "committed_at": "2026-06-18T09:43:18Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e6158e24f893de4a71f5223af5911ad142f132bc",
          "body": "* feat(ai-sdk): add OpenSearch AI SDK tools package\n\n* fix(ci): pin AI SDK dev dependency age",
          "is_bot": false,
          "headline": "[codex] Add OpenSearch AI SDK tools package (#31)",
          "author_name": "Woonggi Min",
          "author_login": "minpeter",
          "committed_at": "2026-06-18T09:42:26Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6e19a133eedc0a2c6e4e149614b826a57e6000e1",
          "body": "* Add Firecrawl no-key web providers\n\n* Address Firecrawl review feedback",
          "is_bot": false,
          "headline": "[codex] Add Firecrawl no-key web providers (#29)",
          "author_name": "Woonggi Min",
          "author_login": "minpeter",
          "committed_at": "2026-06-17T03:38:02Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b383dbbc9030b9f413ab4495245e00996a5fbde4",
          "body": "Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "chore: release (#25)",
          "author_name": "github-actions[bot]",
          "author_login": "github-actions[bot]",
          "committed_at": "2026-06-16T08:42:28Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "249544b71c459718db949d4b244a61117cdffa65",
          "body": "Lower the only above-patch changeset (@minpeter/opensearch: major ->\npatch) so the next release is a patch bump.\n\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "chore(changeset): downgrade opensearch bump to patch (#28)",
          "author_name": "Woonggi Min",
          "author_login": "minpeter",
          "committed_at": "2026-06-16T08:31:40Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "c74bdfbcd7d3f1c4c24473d91c0c717b8455cd6b",
          "body": "…live CI monitor (#26)\n\n* feat(bench): add provider metrics bench, tiering, charts, and live CI monitor\n\nQuantitatively compare every search provider on two axes:\n\n- limit: fillRate, rate429/blocked/rateLimit, timeout, latency p50/p95\n- quality: intrinsic heuristics + cross-engine consensus + labele\n[…]\nant/JSON-LD/markdown details that were unverified\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>\n\n---------\n\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "Provider metrics bench: limit + quality comparison, tiering, charts, …",
          "author_name": "Woonggi Min",
          "author_login": "minpeter",
          "committed_at": "2026-06-16T07:18:51Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "2c1ad5d549734a04b8f79046acef5a41d7fe0e0e",
          "body": null,
          "is_bot": false,
          "headline": "organize provider modules",
          "author_name": "Woonggi Min",
          "author_login": "minpeter",
          "committed_at": "2026-06-08T05:30:25Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d78c187fbe50ba5a04b9fff6b1cb0955eddd824a",
          "body": null,
          "is_bot": false,
          "headline": "docs: polish client interface guide (#23)",
          "author_name": "Woonggi Min",
          "author_login": "minpeter",
          "committed_at": "2026-06-08T02:11:40Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d5918240b08a00957593219753b5e433deb5c1f7",
          "body": null,
          "is_bot": false,
          "headline": "fix(release): publish scoped opensearch package publicly (#22)",
          "author_name": "Woonggi Min",
          "author_login": "minpeter",
          "committed_at": "2026-06-07T18:55:56Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "1c81d8b4ceb50e3007b3ada5f21fee8c052cf4fd",
          "body": null,
          "is_bot": false,
          "headline": "fix(release): use supported changeset publish command (#21)",
          "author_name": "Woonggi Min",
          "author_login": "minpeter",
          "committed_at": "2026-06-07T18:53:11Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "208d8693eefa7f087630a894d8fc023542196bc2",
          "body": "Co-authored-by: minpeter <kali2005611@gmail.com>",
          "is_bot": true,
          "headline": "chore: release (#19)",
          "author_name": "github-actions[bot]",
          "author_login": "github-actions[bot]",
          "committed_at": "2026-06-07T18:50:18Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0b45db2046efa380a660e728b00a80ff37dbb215",
          "body": "* split opensearch library monorepo\n\n* feat(api): expose concise search and fetch\n\n* feat(api): add explicit opensearch client config\n\n* refactor: clean fetch tests and error handling\n\n* feat(opensearch): support provider api key pools\n\n* chore(opensearch): reset initial library version",
          "is_bot": false,
          "headline": "[codex] split opensearch library monorepo (#20)",
          "author_name": "Woonggi Min",
          "author_login": "minpeter",
          "committed_at": "2026-06-07T18:47:29Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c69a1fd0439f79e3b95b10d2b6b73e1fddea94a3",
          "body": "* feat(providers): add tinyfish web providers\n\n* ci: allow esbuild install scripts with pnpm 11\n\n* fix(providers): keep tinyfish results matched to requests",
          "is_bot": false,
          "headline": "[codex] Add TinyFish web providers (#18)",
          "author_name": "Woonggi Min",
          "author_login": "minpeter",
          "committed_at": "2026-06-05T21:48:42Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6cf98f0374cd7be2942cfac4e4b981f5b241e6d4",
          "body": "Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "chore: release (#17)",
          "author_name": "github-actions[bot]",
          "author_login": "github-actions[bot]",
          "committed_at": "2026-04-16T18:17:22Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "274b5ccf7c36462f80e2e1e54e3226aeadc685b6",
          "body": "This removes the local-only legacy `url` alias from `web_fetch`, keeps the\npublic input centered on `urls`, and rewrites the exposed tool descriptions\nand schema descriptions so `tools/list` reads like a clean MCP surface instead\nof an implementation note dump.\n\nConstraint: MCP clients depend on `to\n[…]\nted: pnpm test\nTested: pnpm build\nTested: npx -y @modelcontextprotocol/inspector --cli node out/index.js --method tools/list\nNot-tested: External MCP client behavior beyond local tools/list inspection",
          "is_bot": false,
          "headline": "Align fetch tool inputs and copy with the Exa-style MCP contract (#16)",
          "author_name": "Woonggi Min",
          "author_login": "minpeter",
          "committed_at": "2026-04-16T18:13:36Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "42d9b3f1bfab334e32116e67d1b0486f923ff500",
          "body": "Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "chore: release (#14)",
          "author_name": "github-actions[bot]",
          "author_login": "github-actions[bot]",
          "committed_at": "2026-04-16T17:48:16Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6bad5968823486cc9a1099a0de1b9cd1c0e8be5d",
          "body": "Schema-aware MCP clients depend on tools/list advertising the\nreal web_search parameters. The release bundle was minifying away\nenough structure that the search tool degraded to an empty object\nschema, so this keeps the schema plain, preserves legacy alias\nhandling in runtime helpers, and avoids bun\n[…]\nols/list\nTested: pnpm run build; pnpm test; pnpm run typecheck; pnpm run check; built MCP stdio tools/list + web_search + web_fetch smoke test\nNot-tested: Published npm package after a new release cut",
          "is_bot": false,
          "headline": "Preserve web_search tool metadata for MCP clients (#15)",
          "author_name": "Woonggi Min",
          "author_login": "minpeter",
          "committed_at": "2026-04-16T17:47:37Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "ab3abc518ad02cd6680fd7281edf57a1cc2688c2",
          "body": "The 0.1.3 release substantially changed the project's positioning, but the package and README were still describing it as a generic two-tool MCP server. This updates the top-level description to match the current zero-config, free-tier-first story and records the metadata tweak as a patch changeset.\n[…]\nly released product surface after each release\\nTested: pnpm install --frozen-lockfile; pnpm run typecheck; pnpm run check; pnpm test\\nNot-tested: GitHub About-field update (repo metadata outside git)",
          "is_bot": false,
          "headline": "Refresh the package description for the 0.1.3 positioning (#13)",
          "author_name": "Woonggi Min",
          "author_login": "minpeter",
          "committed_at": "2026-04-16T17:22:34Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "a920a4400105d1bd700777a1be817805bff76131",
          "body": "Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "chore: release (#8)",
          "author_name": "github-actions[bot]",
          "author_login": "github-actions[bot]",
          "committed_at": "2026-04-16T16:04:02Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "71f709243d4db53f4ac0ff601138014c8f0b6000",
          "body": "* Aggregate official free/provider search paths without bypassing auth\n\nThis adds Exa's hosted MCP endpoint as an official in-server fallback when raw Exa API credentials are absent, while preserving the raw Exa API path when EXA_API_KEY is configured. The change also documents the project's officia\n[…]\ny be merged; avoid splitting the code and its changeset across divergent branches\\nTested: Changeset file presence on codex/official-provider-aggregation-pr\\nNot-tested: changeset version/publish flow",
          "is_bot": false,
          "headline": "Aggregate official search capacity with Exa MCP fallback (#12)",
          "author_name": "Woonggi Min",
          "author_login": "minpeter",
          "committed_at": "2026-04-16T15:57:56Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "55499ad6fc82154058526760974e748749b9b709",
          "body": "PR #9 was already merged with the generated cleanup plan doc included, so this follow-up removes that file and adds an ignore rule to keep the docs path out of this lane.\n\nConstraint: The docs cleanup had to happen after the original PR was already merged to main\nRejected: Leave the generated plan d\n[…]\nanup notes should stay out of release PRs, keep them outside tracked docs paths or ignore them before opening the PR\nTested: git diff --stat\nNot-tested: Project checks (repository-content-only change)",
          "is_bot": false,
          "headline": "Remove the accidentally merged cleanup doc from main (#10)",
          "author_name": "Woonggi Min",
          "author_login": "minpeter",
          "committed_at": "2026-04-16T11:03:27Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "051672ac394ec3aee26bbfc5d2b09b5a6d65b2c4",
          "body": "* Reduce duplicate fetch and search cleanup noise without changing behavior\n\nThis restacks the verified cleanup pass onto a clean branch from origin/main so the PR is reviewable. The diff keeps the fetch/search behavior intact while trimming repeated plumbing, tightening tests, and recording the bou\n[…]\ntive: Any user-visible fix/refactor PR intended for release should include a changeset before merge\nTested: Changeset file added and validated by inspection\nNot-tested: Full release PR generation flow",
          "is_bot": false,
          "headline": "[codex] Reduce duplicate fetch and search cleanup noise (#9)",
          "author_name": "Woonggi Min",
          "author_login": "minpeter",
          "committed_at": "2026-04-16T10:58:18Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "0924083399e3459727e0aa3119112e457cfcea95",
          "body": "* fix: harden web_search fallback behavior\n\nUltraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)\n\nCo-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>\n\n* docs: document API-backed search fallback release\n\nUltraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-open\n[…]\ns\n\nUltraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)\n\nCo-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>\n\n---------\n\nCo-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>",
          "is_bot": false,
          "headline": "fix: harden web_search fallback behavior (#7)",
          "author_name": "Woonggi Min",
          "author_login": "minpeter",
          "committed_at": "2026-04-16T10:19:49Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "d4cd2f5eb8f856ebdee9b3e530f6e84a0296a1fb",
          "body": "Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "chore: release (#4)",
          "author_name": "github-actions[bot]",
          "author_login": "github-actions[bot]",
          "committed_at": "2026-04-16T07:02:40Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "eb995344b7589349069eb42f0be41ccb0fd18659",
          "body": "* fix: reduce duplicated MCP tool payloads\n\nUltraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)\n\nCo-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>\n\n* fix: preserve MCP tool compatibility\n\nUltraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)\n\nCo-au\n[…]\nt\n\n* chore: add changeset for tool response refactoring, add coverage to CI\n\n* fix: avoid running test suite twice in CI coverage step\n\n---------\n\nCo-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>",
          "is_bot": false,
          "headline": "fix: reduce duplicated MCP tool payloads (#5)",
          "author_name": "Woonggi Min",
          "author_login": "minpeter",
          "committed_at": "2026-04-16T07:01:07Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "5499178036b8223a859dd7a119ff5e4316d1da74",
          "body": "…terns (#6)\n\n* refactor: consolidate types, DRY patterns, remove dead code, strengthen typing\n\n- Canonical Zod schemas (searchResultSchema, fetchResultSchema) replace duplicated inline schemas in index.ts\n- Extract shared helpers: createToolErrorResponse, createSearchRequestInit, createSearchUrl, Tt\n[…]\nt\n\nUltraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)\n\nCo-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>\n\n---------\n\nCo-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>",
          "is_bot": false,
          "headline": "refactor: code quality cleanup — DRY, types, dead code, defensive pat…",
          "author_name": "Woonggi Min",
          "author_login": "minpeter",
          "committed_at": "2026-04-16T06:06:28Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "3b88d9323451410a760e071d829368cf76d10341",
          "body": "* feat: add engine field to web_search results\n\nEach SearchResult now includes an `engine` field (\"DuckDuckGo\" | \"Google\" | \"Bing\") indicating which search engine produced the result. The MCP outputSchema, tests, integration check, README, and a patch changeset for 0.1.2 are all updated accordingly.\n\n* refactor: use shared engine-name constant in search schema",
          "is_bot": false,
          "headline": "feat: add engine field to web_search results (#3)",
          "author_name": "Woonggi Min",
          "author_login": "minpeter",
          "committed_at": "2026-04-16T03:59:45Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4a264a92b6e79283fd39570cabb7bb2b814fb26b",
          "body": null,
          "is_bot": false,
          "headline": "fix: align npm trusted publishing metadata",
          "author_name": "minpeter",
          "author_login": "minpeter",
          "committed_at": "2026-04-16T03:18:47Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "db3e5c752516e71c1c61d3a33dfe21d36a09ca0e",
          "body": "Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "chore: release (#2)",
          "author_name": "github-actions[bot]",
          "author_login": "github-actions[bot]",
          "committed_at": "2026-04-16T02:58:18Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "98a19f97802306d16948090570b91f4fcee404e4",
          "body": "fix: harden web_search fallback and prepare patch release",
          "is_bot": false,
          "headline": "Merge pull request #1 from minpeter/feat/search-fallback-hardening",
          "author_name": "Woonggi Min",
          "author_login": "minpeter",
          "committed_at": "2026-04-16T02:45:54Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f44cea6be408daef654cab3f69efb2519b04a801",
          "body": "Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)\n\nCo-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>",
          "is_bot": false,
          "headline": "fix: tighten search retry and review safeguards",
          "author_name": "minpeter",
          "author_login": "minpeter",
          "committed_at": "2026-04-16T02:36:15Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "00788b7b931133e24f4c280e9bb97a0ff22cb6e0",
          "body": "Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)\n\nCo-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>",
          "is_bot": false,
          "headline": "test: narrow integration skip logic for blocked search errors",
          "author_name": "minpeter",
          "author_login": "minpeter",
          "committed_at": "2026-04-16T02:09:41Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f7a0843dfac024f9edde5e9925f77ae9b245e21b",
          "body": "Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)\n\nCo-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>",
          "is_bot": false,
          "headline": "test: harden integration coverage for search fallback",
          "author_name": "minpeter",
          "author_login": "minpeter",
          "committed_at": "2026-04-15T15:38:47Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d2afc8efa927418954810a9f3ebcc96e5880f29f",
          "body": "Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)\n\nCo-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>",
          "is_bot": false,
          "headline": "test: expand search fallback coverage",
          "author_name": "minpeter",
          "author_login": "minpeter",
          "committed_at": "2026-04-15T15:38:32Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d87269b06135055051b3b9d14bb703b8e62e55b1",
          "body": "Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)\n\nCo-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>",
          "is_bot": false,
          "headline": "fix: harden multi-engine search fallback",
          "author_name": "minpeter",
          "author_login": "minpeter",
          "committed_at": "2026-04-15T15:38:20Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "03a89cec7e0fe15d65c1893632fe13d5275939a9",
          "body": "Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)\n\nCo-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>",
          "is_bot": false,
          "headline": "test: add Bing search fixtures",
          "author_name": "minpeter",
          "author_login": "minpeter",
          "committed_at": "2026-04-15T15:38:11Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "948c7a309efcd06fd4f22d98bdd3f33ff020d599",
          "body": "Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)\n\nCo-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>",
          "is_bot": false,
          "headline": "test: add Google search fixtures",
          "author_name": "minpeter",
          "author_login": "minpeter",
          "committed_at": "2026-04-15T15:37:54Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3fd1607868b7712c375fc75be2732c9f04470534",
          "body": "- zod 3 → 4: z.int(), z.url() API updates in src/index.ts\n- p-retry 6 → 8: shouldRetry now receives { error } context object\n- vitest 3 → 4: test timeout option syntax updated\n- typescript 5 → 6, jsdom 26 → 29, unpdf 0.12 → 1.6, biome 2.4.11 → 2.4.12",
          "is_bot": false,
          "headline": "chore: upgrade all dependencies to latest",
          "author_name": "minpeter",
          "author_login": "minpeter",
          "committed_at": "2026-04-15T14:51:48Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "dbb991f0940b8b4cd03e61b88aa2202a58d22fc3",
          "body": null,
          "is_bot": false,
          "headline": "ci: split CI into separate typecheck, lint, test, build jobs",
          "author_name": "minpeter",
          "author_login": "minpeter",
          "committed_at": "2026-04-15T14:38:31Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "1dc302a2823fd9ddae2dc0972e9a743919bd1e84",
          "body": null,
          "is_bot": false,
          "headline": "chore: fix remaining config files for biome compliance",
          "author_name": "minpeter",
          "author_login": "minpeter",
          "committed_at": "2026-04-15T14:23:17Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9ef957be094a9de06a08bf4ce055c5c463f183f4",
          "body": null,
          "is_bot": false,
          "headline": "fix: apply biome/ultracite rules to source and test files",
          "author_name": "minpeter",
          "author_login": "minpeter",
          "committed_at": "2026-04-15T14:23:17Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "184a829b4f54a25d7b9beeb561ab9e1c117bcc4c",
          "body": null,
          "is_bot": false,
          "headline": "chore: replace oxlint/oxfmt with biome via ultracite",
          "author_name": "minpeter",
          "author_login": "minpeter",
          "committed_at": "2026-04-15T14:23:09Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "eee587003fc77228894745d145d6fe88f8bcbb65",
          "body": null,
          "is_bot": false,
          "headline": "chore: switch release pipeline to npm OIDC provenance",
          "author_name": "minpeter",
          "author_login": "minpeter",
          "committed_at": "2026-04-15T14:01:22Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "22fcb6f1095a762139cd6fa11b7c96745e900c8b",
          "body": null,
          "is_bot": false,
          "headline": "chore: ignore .sisyphus and ref-duckduckgo-mcp directories",
          "author_name": "minpeter",
          "author_login": "minpeter",
          "committed_at": "2026-04-15T13:58:15Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "57f4e70142a5703b522afa9b5087e51f7e31080b",
          "body": "…peline",
          "is_bot": false,
          "headline": "chore: add README, Changesets config and GitHub Actions CI/release pi…",
          "author_name": "minpeter",
          "author_login": "minpeter",
          "committed_at": "2026-04-15T13:57:55Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "98d39abfe2e98c2a57e829e6445dade8908e975b",
          "body": null,
          "is_bot": false,
          "headline": "feat: wire MCP server with both tools and add integration tests",
          "author_name": "minpeter",
          "author_login": "minpeter",
          "committed_at": "2026-04-15T13:57:48Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "cb3ce9497c4d4cd0604b7c6a4fd0654f1fe06f34",
          "body": "…k and cache",
          "is_bot": false,
          "headline": "feat: implement web_fetch with readability, PDF support, Jina fallbac…",
          "author_name": "minpeter",
          "author_login": "minpeter",
          "committed_at": "2026-04-15T13:57:39Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "1cb541cdee2c290d186a6cde506f3f0f8394232f",
          "body": null,
          "is_bot": false,
          "headline": "feat: implement web_search with DuckDuckGo scraping, retry and cache",
          "author_name": "minpeter",
          "author_login": "minpeter",
          "committed_at": "2026-04-15T13:57:28Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2c16b2e20061882ff13003f08968d890cafafb3d",
          "body": null,
          "is_bot": false,
          "headline": "feat: add TTL cache and user-agent utilities with tests",
          "author_name": "minpeter",
          "author_login": "minpeter",
          "committed_at": "2026-04-15T13:57:19Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f99cd5879d9cfcf3de87293ed2f8003bb0251d04",
          "body": null,
          "is_bot": false,
          "headline": "chore: scaffold opensearch-mcp project",
          "author_name": "minpeter",
          "author_login": "minpeter",
          "committed_at": "2026-04-15T13:57:13Z",
          "body_truncated": false,
          "is_coding_agent": false
        }
      ],
      "releases_count": 41,
      "commits_last_year": 90,
      "latest_release_at": "2026-07-21T18:34:44Z",
      "latest_release_tag": "opensearch-mcp@0.2.13",
      "releases_from_tags": false,
      "days_since_last_push": 1,
      "active_weeks_last_year": 9,
      "days_since_latest_release": 8,
      "mean_days_between_releases": 0.1
    },
    "community": {
      "has_readme": true,
      "has_license": false,
      "has_description": true,
      "has_contributing": false,
      "health_percentage": 28,
      "has_issue_template": false,
      "has_code_of_conduct": false,
      "has_pull_request_template": false
    },
    "ecosystem": {
      "packages": [
        {
          "name": "@minpeter/opensearch",
          "exists": true,
          "license": "MIT",
          "keywords": [
            "ai",
            "fetch",
            "search",
            "websearch"
          ],
          "ecosystem": "npm",
          "matches_repo": true,
          "registry_url": "https://www.npmjs.com/package/@minpeter/opensearch",
          "is_deprecated": false,
          "latest_version": "0.1.1",
          "repository_url": "https://github.com/minpeter/opensearch",
          "versions_count": 12,
          "total_downloads": null,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": 1,
          "monthly_downloads": 3075,
          "first_published_at": "2026-06-08T01:28:57.827000Z",
          "latest_published_at": "2026-07-21T18:34:34.989000Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 8
        },
        {
          "name": "opensearch-mcp",
          "exists": true,
          "license": "MIT",
          "keywords": [
            "ai",
            "mcp",
            "modelcontextprotocol",
            "search",
            "websearch"
          ],
          "ecosystem": "npm",
          "matches_repo": true,
          "registry_url": "https://www.npmjs.com/package/opensearch-mcp",
          "is_deprecated": false,
          "latest_version": "0.2.13",
          "repository_url": "https://github.com/minpeter/opensearch",
          "versions_count": 20,
          "total_downloads": null,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": 1,
          "monthly_downloads": 1476,
          "first_published_at": "2026-04-15T14:03:19.149000Z",
          "latest_published_at": "2026-07-21T18:34:40.953000Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 8
        },
        {
          "name": "opensearch-ai-sdk",
          "exists": true,
          "license": "MIT",
          "keywords": [
            "ai",
            "ai-sdk",
            "fetch",
            "search",
            "websearch"
          ],
          "ecosystem": "npm",
          "matches_repo": true,
          "registry_url": "https://www.npmjs.com/package/opensearch-ai-sdk",
          "is_deprecated": false,
          "latest_version": "0.0.11",
          "repository_url": "https://github.com/minpeter/opensearch",
          "versions_count": 12,
          "total_downloads": null,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": 1,
          "monthly_downloads": 1252,
          "first_published_at": "2026-06-18T09:41:45.140000Z",
          "latest_published_at": "2026-07-21T18:34:41.559000Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 8
        }
      ]
    },
    "popularity": {
      "forks": 1,
      "stars": 11,
      "watchers": 0,
      "fork_history": {
        "days": [
          {
            "date": "2026-06-18",
            "count": 1
          }
        ],
        "complete": true,
        "collected": 1,
        "total_forks": 1
      },
      "star_history": null,
      "open_issues_and_prs": 1
    },
    "ai_readiness": {
      "has_nix": false,
      "example_dirs": [],
      "has_llms_txt": false,
      "has_dockerfile": false,
      "has_mcp_signal": true,
      "bootstrap_files": [],
      "api_schema_files": [],
      "has_devcontainer": false,
      "typecheck_configs": [
        "packages/opensearch-ai-sdk/tsconfig.json",
        "packages/opensearch-mcp/tsconfig.json",
        "packages/opensearch/tsconfig.json",
        "tsconfig.json"
      ],
      "toolchain_manifests": [],
      "largest_source_bytes": 23918,
      "source_files_sampled": 265,
      "oversized_source_files": 0,
      "agent_instruction_files": [
        "AGENTS.md"
      ],
      "agent_instruction_max_bytes": 5028
    },
    "dependencies": {
      "manifests": [
        "package.json"
      ],
      "advisories": {
        "error": null,
        "scope": "published_package",
        "source": "osv",
        "findings": [],
        "collected": true,
        "malicious": [],
        "truncated": false,
        "by_severity": {},
        "advisory_count": 0,
        "affected_count": 0,
        "assessed_count": 164,
        "malicious_count": 0,
        "assessed_package": "npm:@minpeter/opensearch@0.1.1",
        "unassessed_count": 0,
        "direct_affected_count": 0
      },
      "ecosystems": [
        "npm"
      ],
      "dependencies": [
        {
          "name": "@minpeter/opensearch",
          "manifest": "packages/opensearch-ai-sdk/package.json",
          "ecosystem": "npm",
          "version_constraint": "^0.1.0"
        },
        {
          "name": "zod",
          "manifest": "packages/opensearch-ai-sdk/package.json",
          "ecosystem": "npm",
          "version_constraint": "^4.4.3"
        },
        {
          "name": "@minpeter/opensearch",
          "manifest": "packages/opensearch-mcp/package.json",
          "ecosystem": "npm",
          "version_constraint": "^0.1.0"
        },
        {
          "name": "@modelcontextprotocol/sdk",
          "manifest": "packages/opensearch-mcp/package.json",
          "ecosystem": "npm",
          "version_constraint": "^1.29.0"
        },
        {
          "name": "zod",
          "manifest": "packages/opensearch-mcp/package.json",
          "ecosystem": "npm",
          "version_constraint": "^4.4.3"
        },
        {
          "name": "@cfworker/json-schema",
          "manifest": "packages/opensearch/package.json",
          "ecosystem": "npm",
          "version_constraint": "^4.1.1"
        },
        {
          "name": "@modelcontextprotocol/sdk",
          "manifest": "packages/opensearch/package.json",
          "ecosystem": "npm",
          "version_constraint": "^1.29.0"
        },
        {
          "name": "@mozilla/readability",
          "manifest": "packages/opensearch/package.json",
          "ecosystem": "npm",
          "version_constraint": "^0.6.0"
        },
        {
          "name": "cheerio",
          "manifest": "packages/opensearch/package.json",
          "ecosystem": "npm",
          "version_constraint": "^1.2.0"
        },
        {
          "name": "jsdom",
          "manifest": "packages/opensearch/package.json",
          "ecosystem": "npm",
          "version_constraint": "^29.1.1"
        },
        {
          "name": "p-retry",
          "manifest": "packages/opensearch/package.json",
          "ecosystem": "npm",
          "version_constraint": "^8.0.0"
        },
        {
          "name": "turndown",
          "manifest": "packages/opensearch/package.json",
          "ecosystem": "npm",
          "version_constraint": "^7.2.4"
        },
        {
          "name": "turndown-plugin-gfm",
          "manifest": "packages/opensearch/package.json",
          "ecosystem": "npm",
          "version_constraint": "^1.0.2"
        },
        {
          "name": "undici",
          "manifest": "packages/opensearch/package.json",
          "ecosystem": "npm",
          "version_constraint": "^8.9.0"
        },
        {
          "name": "unpdf",
          "manifest": "packages/opensearch/package.json",
          "ecosystem": "npm",
          "version_constraint": "^1.8.0"
        },
        {
          "name": "zod",
          "manifest": "packages/opensearch/package.json",
          "ecosystem": "npm",
          "version_constraint": "^4.4.3"
        }
      ],
      "all_dependencies": {
        "error": null,
        "source": "github-sbom",
        "packages": [
          {
            "name": "@cfworker/json-schema",
            "direct": true,
            "version": "4.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "@cfworker/json-schema",
            "direct": true,
            "version": "^4.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "@minpeter/opensearch",
            "direct": true,
            "version": "^0.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "@modelcontextprotocol/sdk",
            "direct": true,
            "version": "1.30.0",
            "ecosystem": "npm"
          },
          {
            "name": "@modelcontextprotocol/sdk",
            "direct": true,
            "version": "^1.29.0",
            "ecosystem": "npm"
          },
          {
            "name": "@mozilla/readability",
            "direct": true,
            "version": "0.6.0",
            "ecosystem": "npm"
          },
          {
            "name": "@mozilla/readability",
            "direct": true,
            "version": "^0.6.0",
            "ecosystem": "npm"
          },
          {
            "name": "cheerio",
            "direct": true,
            "version": "1.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "cheerio",
            "direct": true,
            "version": "^1.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "jsdom",
            "direct": true,
            "version": "29.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "jsdom",
            "direct": true,
            "version": "^29.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "p-retry",
            "direct": true,
            "version": "8.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "p-retry",
            "direct": true,
            "version": "^8.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "turndown",
            "direct": true,
            "version": "7.2.4",
            "ecosystem": "npm"
          },
          {
            "name": "turndown",
            "direct": true,
            "version": "^7.2.4",
            "ecosystem": "npm"
          },
          {
            "name": "turndown-plugin-gfm",
            "direct": true,
            "version": "1.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "turndown-plugin-gfm",
            "direct": true,
            "version": "^1.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "undici",
            "direct": true,
            "version": "7.29.0",
            "ecosystem": "npm"
          },
          {
            "name": "undici",
            "direct": true,
            "version": "8.9.0",
            "ecosystem": "npm"
          },
          {
            "name": "undici",
            "direct": true,
            "version": "^8.9.0",
            "ecosystem": "npm"
          },
          {
            "name": "unpdf",
            "direct": true,
            "version": "1.8.0",
            "ecosystem": "npm"
          },
          {
            "name": "unpdf",
            "direct": true,
            "version": "^1.8.0",
            "ecosystem": "npm"
          },
          {
            "name": "zod",
            "direct": true,
            "version": "4.4.3",
            "ecosystem": "npm"
          },
          {
            "name": "zod",
            "direct": true,
            "version": "^4.4.3",
            "ecosystem": "npm"
          },
          {
            "name": "@ai-sdk/gateway",
            "direct": false,
            "version": "4.0.28",
            "ecosystem": "npm"
          },
          {
            "name": "@ai-sdk/provider",
            "direct": false,
            "version": "4.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "@ai-sdk/provider-utils",
            "direct": false,
            "version": "5.0.12",
            "ecosystem": "npm"
          },
          {
            "name": "@andrewbranch/untar.js",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "@arethetypeswrong/cli",
            "direct": false,
            "version": "0.18.5",
            "ecosystem": "npm"
          },
          {
            "name": "@arethetypeswrong/core",
            "direct": false,
            "version": "0.18.5",
            "ecosystem": "npm"
          },
          {
            "name": "@asamuzakjp/css-color",
            "direct": false,
            "version": "5.1.11",
            "ecosystem": "npm"
          },
          {
            "name": "@asamuzakjp/dom-selector",
            "direct": false,
            "version": "7.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "@asamuzakjp/generational-cache",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "@asamuzakjp/nwsapi",
            "direct": false,
            "version": "2.3.9",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/helper-string-parser",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/helper-validator-identifier",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/parser",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/types",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@bcoe/v8-coverage",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "@biomejs/biome",
            "direct": false,
            "version": "2.5.5",
            "ecosystem": "npm"
          },
          {
            "name": "@biomejs/cli-darwin-arm64",
            "direct": false,
            "version": "2.5.5",
            "ecosystem": "npm"
          },
          {
            "name": "@biomejs/cli-darwin-x64",
            "direct": false,
            "version": "2.5.5",
            "ecosystem": "npm"
          },
          {
            "name": "@biomejs/cli-linux-arm64",
            "direct": false,
            "version": "2.5.5",
            "ecosystem": "npm"
          },
          {
            "name": "@biomejs/cli-linux-arm64-musl",
            "direct": false,
            "version": "2.5.5",
            "ecosystem": "npm"
          },
          {
            "name": "@biomejs/cli-linux-x64",
            "direct": false,
            "version": "2.5.5",
            "ecosystem": "npm"
          },
          {
            "name": "@biomejs/cli-linux-x64-musl",
            "direct": false,
            "version": "2.5.5",
            "ecosystem": "npm"
          },
          {
            "name": "@biomejs/cli-win32-arm64",
            "direct": false,
            "version": "2.5.5",
            "ecosystem": "npm"
          },
          {
            "name": "@biomejs/cli-win32-x64",
            "direct": false,
            "version": "2.5.5",
            "ecosystem": "npm"
          },
          {
            "name": "@braidai/lang",
            "direct": false,
            "version": "1.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "@bramus/specificity",
            "direct": false,
            "version": "2.4.2",
            "ecosystem": "npm"
          },
          {
            "name": "@clack/core",
            "direct": false,
            "version": "1.4.3",
            "ecosystem": "npm"
          },
          {
            "name": "@clack/prompts",
            "direct": false,
            "version": "1.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "@colors/colors",
            "direct": false,
            "version": "1.5.0",
            "ecosystem": "npm"
          },
          {
            "name": "@csstools/color-helpers",
            "direct": false,
            "version": "6.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "@csstools/css-calc",
            "direct": false,
            "version": "3.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "@csstools/css-color-parser",
            "direct": false,
            "version": "4.1.10",
            "ecosystem": "npm"
          },
          {
            "name": "@csstools/css-parser-algorithms",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "@csstools/css-syntax-patches-for-csstree",
            "direct": false,
            "version": "1.1.7",
            "ecosystem": "npm"
          },
          {
            "name": "@csstools/css-tokenizer",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "@emnapi/core",
            "direct": false,
            "version": "1.11.2",
            "ecosystem": "npm"
          },
          {
            "name": "@emnapi/runtime",
            "direct": false,
            "version": "1.11.2",
            "ecosystem": "npm"
          },
          {
            "name": "@emnapi/wasi-threads",
            "direct": false,
            "version": "1.2.2",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/aix-ppc64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/android-arm",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/android-arm64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/android-x64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/darwin-arm64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/darwin-x64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/freebsd-arm64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/freebsd-x64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/linux-arm",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/linux-arm64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/linux-ia32",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/linux-loong64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/linux-mips64el",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/linux-ppc64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/linux-riscv64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/linux-s390x",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/linux-x64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/netbsd-arm64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/netbsd-x64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/openbsd-arm64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/openbsd-x64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/openharmony-arm64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/sunos-x64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/win32-arm64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/win32-ia32",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/win32-x64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@eslint-community/eslint-utils",
            "direct": false,
            "version": "4.10.1",
            "ecosystem": "npm"
          },
          {
            "name": "@exodus/bytes",
            "direct": false,
            "version": "1.15.1",
            "ecosystem": "npm"
          },
          {
            "name": "@hono/node-server",
            "direct": false,
            "version": "2.0.12",
            "ecosystem": "npm"
          },
          {
            "name": "@jridgewell/resolve-uri",
            "direct": false,
            "version": "3.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "@jridgewell/sourcemap-codec",
            "direct": false,
            "version": "1.5.5",
            "ecosystem": "npm"
          },
          {
            "name": "@jridgewell/trace-mapping",
            "direct": false,
            "version": "0.3.31",
            "ecosystem": "npm"
          },
          {
            "name": "@loaderkit/resolve",
            "direct": false,
            "version": "1.0.6",
            "ecosystem": "npm"
          },
          {
            "name": "@mixmark-io/domino",
            "direct": false,
            "version": "2.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "@napi-rs/wasm-runtime",
            "direct": false,
            "version": "1.1.6",
            "ecosystem": "npm"
          },
          {
            "name": "@oxc-project/types",
            "direct": false,
            "version": "0.140.0",
            "ecosystem": "npm"
          },
          {
            "name": "@quansync/fs",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "@rainbowatcher/toml-edit-js",
            "direct": false,
            "version": "0.6.5",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-android-arm64",
            "direct": false,
            "version": "1.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-darwin-arm64",
            "direct": false,
            "version": "1.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-darwin-x64",
            "direct": false,
            "version": "1.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-freebsd-x64",
            "direct": false,
            "version": "1.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-linux-arm-gnueabihf",
            "direct": false,
            "version": "1.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-linux-arm64-gnu",
            "direct": false,
            "version": "1.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-linux-arm64-musl",
            "direct": false,
            "version": "1.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-linux-ppc64-gnu",
            "direct": false,
            "version": "1.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-linux-s390x-gnu",
            "direct": false,
            "version": "1.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-linux-x64-gnu",
            "direct": false,
            "version": "1.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-linux-x64-musl",
            "direct": false,
            "version": "1.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-openharmony-arm64",
            "direct": false,
            "version": "1.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-wasm32-wasi",
            "direct": false,
            "version": "1.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-win32-arm64-msvc",
            "direct": false,
            "version": "1.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-win32-x64-msvc",
            "direct": false,
            "version": "1.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/pluginutils",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-android-arm-eabi",
            "direct": false,
            "version": "4.62.3",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-android-arm64",
            "direct": false,
            "version": "4.62.3",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-darwin-arm64",
            "direct": false,
            "version": "4.62.3",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-darwin-x64",
            "direct": false,
            "version": "4.62.3",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-freebsd-arm64",
            "direct": false,
            "version": "4.62.3",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-freebsd-x64",
            "direct": false,
            "version": "4.62.3",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-arm-gnueabihf",
            "direct": false,
            "version": "4.62.3",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-arm-musleabihf",
            "direct": false,
            "version": "4.62.3",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-arm64-gnu",
            "direct": false,
            "version": "4.62.3",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-arm64-musl",
            "direct": false,
            "version": "4.62.3",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-loong64-gnu",
            "direct": false,
            "version": "4.62.3",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-loong64-musl",
            "direct": false,
            "version": "4.62.3",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-ppc64-gnu",
            "direct": false,
            "version": "4.62.3",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-ppc64-musl",
            "direct": false,
            "version": "4.62.3",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-riscv64-gnu",
            "direct": false,
            "version": "4.62.3",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-riscv64-musl",
            "direct": false,
            "version": "4.62.3",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-s390x-gnu",
            "direct": false,
            "version": "4.62.3",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-x64-gnu",
            "direct": false,
            "version": "4.62.3",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-x64-musl",
            "direct": false,
            "version": "4.62.3",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-openbsd-x64",
            "direct": false,
            "version": "4.62.3",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-openharmony-arm64",
            "direct": false,
            "version": "4.62.3",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-win32-arm64-msvc",
            "direct": false,
            "version": "4.62.3",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-win32-ia32-msvc",
            "direct": false,
            "version": "4.62.3",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-win32-x64-gnu",
            "direct": false,
            "version": "4.62.3",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-win32-x64-msvc",
            "direct": false,
            "version": "4.62.3",
            "ecosystem": "npm"
          },
          {
            "name": "@sindresorhus/is",
            "direct": false,
            "version": "4.6.0",
            "ecosystem": "npm"
          },
          {
            "name": "@standard-schema/spec",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "@turbo/darwin-64",
            "direct": false,
            "version": "2.10.7",
            "ecosystem": "npm"
          },
          {
            "name": "@turbo/darwin-arm64",
            "direct": false,
            "version": "2.10.7",
            "ecosystem": "npm"
          },
          {
            "name": "@turbo/linux-64",
            "direct": false,
            "version": "2.10.7",
            "ecosystem": "npm"
          },
          {
            "name": "@turbo/linux-arm64",
            "direct": false,
            "version": "2.10.7",
            "ecosystem": "npm"
          },
          {
            "name": "@turbo/windows-64",
            "direct": false,
            "version": "2.10.7",
            "ecosystem": "npm"
          },
          {
            "name": "@turbo/windows-arm64",
            "direct": false,
            "version": "2.10.7",
            "ecosystem": "npm"
          },
          {
            "name": "@tybys/wasm-util",
            "direct": false,
            "version": "0.10.3",
            "ecosystem": "npm"
          },
          {
            "name": "@types/chai",
            "direct": false,
            "version": "5.2.3",
            "ecosystem": "npm"
          },
          {
            "name": "@types/deep-eql",
            "direct": false,
            "version": "4.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "@types/estree",
            "direct": false,
            "version": "1.0.9",
            "ecosystem": "npm"
          },
          {
            "name": "@types/jsdom",
            "direct": false,
            "version": "28.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "@types/node",
            "direct": false,
            "version": "26.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "@types/tough-cookie",
            "direct": false,
            "version": "4.0.5",
            "ecosystem": "npm"
          },
          {
            "name": "@types/turndown",
            "direct": false,
            "version": "5.0.6",
            "ecosystem": "npm"
          },
          {
            "name": "@typescript-eslint/project-service",
            "direct": false,
            "version": "8.65.0",
            "ecosystem": "npm"
          },
          {
            "name": "@typescript-eslint/scope-manager",
            "direct": false,
            "version": "8.65.0",
            "ecosystem": "npm"
          },
          {
            "name": "@typescript-eslint/tsconfig-utils",
            "direct": false,
            "version": "8.65.0",
            "ecosystem": "npm"
          },
          {
            "name": "@typescript-eslint/types",
            "direct": false,
            "version": "8.65.0",
            "ecosystem": "npm"
          },
          {
            "name": "@typescript-eslint/typescript-estree",
            "direct": false,
            "version": "8.65.0",
            "ecosystem": "npm"
          },
          {
            "name": "@typescript-eslint/utils",
            "direct": false,
            "version": "8.65.0",
            "ecosystem": "npm"
          },
          {
            "name": "@typescript-eslint/visitor-keys",
            "direct": false,
            "version": "8.65.0",
            "ecosystem": "npm"
          },
          {
            "name": "@typescript/typescript-aix-ppc64",
            "direct": false,
            "version": "7.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "@typescript/typescript-darwin-arm64",
            "direct": false,
            "version": "7.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "@typescript/typescript-darwin-x64",
            "direct": false,
            "version": "7.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "@typescript/typescript-freebsd-arm64",
            "direct": false,
            "version": "7.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "@typescript/typescript-freebsd-x64",
            "direct": false,
            "version": "7.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "@typescript/typescript-linux-arm",
            "direct": false,
            "version": "7.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "@typescript/typescript-linux-arm64",
            "direct": false,
            "version": "7.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "@typescript/typescript-linux-loong64",
            "direct": false,
            "version": "7.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "@typescript/typescript-linux-mips64el",
            "direct": false,
            "version": "7.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "@typescript/typescript-linux-ppc64",
            "direct": false,
            "version": "7.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "@typescript/typescript-linux-riscv64",
            "direct": false,
            "version": "7.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "@typescript/typescript-linux-s390x",
            "direct": false,
            "version": "7.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "@typescript/typescript-linux-x64",
            "direct": false,
            "version": "7.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "@typescript/typescript-netbsd-arm64",
            "direct": false,
            "version": "7.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "@typescript/typescript-netbsd-x64",
            "direct": false,
            "version": "7.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "@typescript/typescript-openbsd-arm64",
            "direct": false,
            "version": "7.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "@typescript/typescript-openbsd-x64",
            "direct": false,
            "version": "7.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "@typescript/typescript-sunos-x64",
            "direct": false,
            "version": "7.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "@typescript/typescript-win32-arm64",
            "direct": false,
            "version": "7.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "@typescript/typescript-win32-x64",
            "direct": false,
            "version": "7.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "@vercel/oidc",
            "direct": false,
            "version": "3.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "@vitest/coverage-v8",
            "direct": false,
            "version": "4.1.10",
            "ecosystem": "npm"
          },
          {
            "name": "@vitest/expect",
            "direct": false,
            "version": "4.1.10",
            "ecosystem": "npm"
          },
          {
            "name": "@vitest/mocker",
            "direct": false,
            "version": "4.1.10",
            "ecosystem": "npm"
          },
          {
            "name": "@vitest/pretty-format",
            "direct": false,
            "version": "4.1.10",
            "ecosystem": "npm"
          },
          {
            "name": "@vitest/runner",
            "direct": false,
            "version": "4.1.10",
            "ecosystem": "npm"
          },
          {
            "name": "@vitest/snapshot",
            "direct": false,
            "version": "4.1.10",
            "ecosystem": "npm"
          },
          {
            "name": "@vitest/spy",
            "direct": false,
            "version": "4.1.10",
            "ecosystem": "npm"
          },
          {
            "name": "@vitest/utils",
            "direct": false,
            "version": "4.1.10",
            "ecosystem": "npm"
          },
          {
            "name": "@workflow/serde",
            "direct": false,
            "version": "4.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "@yuku-codegen/binding-darwin-arm64",
            "direct": false,
            "version": "0.5.48",
            "ecosystem": "npm"
          },
          {
            "name": "@yuku-codegen/binding-darwin-x64",
            "direct": false,
            "version": "0.5.48",
            "ecosystem": "npm"
          },
          {
            "name": "@yuku-codegen/binding-freebsd-x64",
            "direct": false,
            "version": "0.5.48",
            "ecosystem": "npm"
          },
          {
            "name": "@yuku-codegen/binding-linux-arm-gnu",
            "direct": false,
            "version": "0.5.48",
            "ecosystem": "npm"
          },
          {
            "name": "@yuku-codegen/binding-linux-arm-musl",
            "direct": false,
            "version": "0.5.48",
            "ecosystem": "npm"
          },
          {
            "name": "@yuku-codegen/binding-linux-arm64-gnu",
            "direct": false,
            "version": "0.5.48",
            "ecosystem": "npm"
          },
          {
            "name": "@yuku-codegen/binding-linux-arm64-musl",
            "direct": false,
            "version": "0.5.48",
            "ecosystem": "npm"
          },
          {
            "name": "@yuku-codegen/binding-linux-x64-gnu",
            "direct": false,
            "version": "0.5.48",
            "ecosystem": "npm"
          },
          {
            "name": "@yuku-codegen/binding-linux-x64-musl",
            "direct": false,
            "version": "0.5.48",
            "ecosystem": "npm"
          },
          {
            "name": "@yuku-codegen/binding-win32-arm64",
            "direct": false,
            "version": "0.5.48",
            "ecosystem": "npm"
          },
          {
            "name": "@yuku-codegen/binding-win32-x64",
            "direct": false,
            "version": "0.5.48",
            "ecosystem": "npm"
          },
          {
            "name": "@yuku-parser/binding-darwin-arm64",
            "direct": false,
            "version": "0.5.48",
            "ecosystem": "npm"
          },
          {
            "name": "@yuku-parser/binding-darwin-x64",
            "direct": false,
            "version": "0.5.48",
            "ecosystem": "npm"
          },
          {
            "name": "@yuku-parser/binding-freebsd-x64",
            "direct": false,
            "version": "0.5.48",
            "ecosystem": "npm"
          },
          {
            "name": "@yuku-parser/binding-linux-arm-gnu",
            "direct": false,
            "version": "0.5.48",
            "ecosystem": "npm"
          },
          {
            "name": "@yuku-parser/binding-linux-arm-musl",
            "direct": false,
            "version": "0.5.48",
            "ecosystem": "npm"
          },
          {
            "name": "@yuku-parser/binding-linux-arm64-gnu",
            "direct": false,
            "version": "0.5.48",
            "ecosystem": "npm"
          },
          {
            "name": "@yuku-parser/binding-linux-arm64-musl",
            "direct": false,
            "version": "0.5.48",
            "ecosystem": "npm"
          },
          {
            "name": "@yuku-parser/binding-linux-x64-gnu",
            "direct": false,
            "version": "0.5.48",
            "ecosystem": "npm"
          },
          {
            "name": "@yuku-parser/binding-linux-x64-musl",
            "direct": false,
            "version": "0.5.48",
            "ecosystem": "npm"
          },
          {
            "name": "@yuku-parser/binding-win32-arm64",
            "direct": false,
            "version": "0.5.48",
            "ecosystem": "npm"
          },
          {
            "name": "@yuku-parser/binding-win32-x64",
            "direct": false,
            "version": "0.5.48",
            "ecosystem": "npm"
          },
          {
            "name": "@yuku-toolchain/types",
            "direct": false,
            "version": "0.5.43",
            "ecosystem": "npm"
          },
          {
            "name": "accepts",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "ai",
            "direct": false,
            "version": "7.0.37",
            "ecosystem": "npm"
          },
          {
            "name": "ajv",
            "direct": false,
            "version": "8.20.0",
            "ecosystem": "npm"
          },
          {
            "name": "ajv-formats",
            "direct": false,
            "version": "3.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "ansi-escapes",
            "direct": false,
            "version": "7.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "ansi-regex",
            "direct": false,
            "version": "5.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "ansi-regex",
            "direct": false,
            "version": "6.2.2",
            "ecosystem": "npm"
          },
          {
            "name": "ansi-styles",
            "direct": false,
            "version": "4.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "ansis",
            "direct": false,
            "version": "4.3.1",
            "ecosystem": "npm"
          },
          {
            "name": "any-promise",
            "direct": false,
            "version": "1.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "assertion-error",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "ast-v8-to-istanbul",
            "direct": false,
            "version": "1.0.5",
            "ecosystem": "npm"
          },
          {
            "name": "balanced-match",
            "direct": false,
            "version": "4.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "bidi-js",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "body-parser",
            "direct": false,
            "version": "2.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "boolbase",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "brace-expansion",
            "direct": false,
            "version": "5.0.8",
            "ecosystem": "npm"
          },
          {
            "name": "bytes",
            "direct": false,
            "version": "3.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "cac",
            "direct": false,
            "version": "7.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "call-bind-apply-helpers",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "call-bound",
            "direct": false,
            "version": "1.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "chai",
            "direct": false,
            "version": "6.2.2",
            "ecosystem": "npm"
          },
          {
            "name": "chalk",
            "direct": false,
            "version": "4.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "chalk",
            "direct": false,
            "version": "5.6.2",
            "ecosystem": "npm"
          },
          {
            "name": "char-regex",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "cheerio-select",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "citty",
            "direct": false,
            "version": "0.2.2",
            "ecosystem": "npm"
          },
          {
            "name": "cjs-module-lexer",
            "direct": false,
            "version": "1.4.3",
            "ecosystem": "npm"
          },
          {
            "name": "cli-highlight",
            "direct": false,
            "version": "2.1.11",
            "ecosystem": "npm"
          },
          {
            "name": "cli-table3",
            "direct": false,
            "version": "0.6.5",
            "ecosystem": "npm"
          },
          {
            "name": "cliui",
            "direct": false,
            "version": "7.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "color-convert",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "color-name",
            "direct": false,
            "version": "1.1.4",
            "ecosystem": "npm"
          },
          {
            "name": "commander",
            "direct": false,
            "version": "10.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "commander",
            "direct": false,
            "version": "15.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "content-disposition",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "content-type",
            "direct": false,
            "version": "1.0.5",
            "ecosystem": "npm"
          },
          {
            "name": "content-type",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "convert-source-map",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "cookie",
            "direct": false,
            "version": "0.7.2",
            "ecosystem": "npm"
          },
          {
            "name": "cookie-signature",
            "direct": false,
            "version": "1.2.2",
            "ecosystem": "npm"
          },
          {
            "name": "cors",
            "direct": false,
            "version": "2.8.6",
            "ecosystem": "npm"
          },
          {
            "name": "cross-spawn",
            "direct": false,
            "version": "7.0.6",
            "ecosystem": "npm"
          },
          {
            "name": "css-select",
            "direct": false,
            "version": "5.2.2",
            "ecosystem": "npm"
          },
          {
            "name": "css-tree",
            "direct": false,
            "version": "3.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "css-what",
            "direct": false,
            "version": "6.2.2",
            "ecosystem": "npm"
          },
          {
            "name": "data-urls",
            "direct": false,
            "version": "7.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "debug",
            "direct": false,
            "version": "4.4.3",
            "ecosystem": "npm"
          },
          {
            "name": "decimal.js",
            "direct": false,
            "version": "10.6.0",
            "ecosystem": "npm"
          },
          {
            "name": "deepmerge",
            "direct": false,
            "version": "4.3.1",
            "ecosystem": "npm"
          },
          {
            "name": "defu",
            "direct": false,
            "version": "6.1.7",
            "ecosystem": "npm"
          },
          {
            "name": "depd",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "dom-serializer",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "domelementtype",
            "direct": false,
            "version": "2.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "domhandler",
            "direct": false,
            "version": "5.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "domutils",
            "direct": false,
            "version": "3.2.2",
            "ecosystem": "npm"
          },
          {
            "name": "dts-resolver",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "dunder-proto",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "ee-first",
            "direct": false,
            "version": "1.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "emoji-regex",
            "direct": false,
            "version": "8.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "emojilib",
            "direct": false,
            "version": "2.4.0",
            "ecosystem": "npm"
          },
          {
            "name": "empathic",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "encodeurl",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "encoding-sniffer",
            "direct": false,
            "version": "0.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "entities",
            "direct": false,
            "version": "4.5.0",
            "ecosystem": "npm"
          },
          {
            "name": "entities",
            "direct": false,
            "version": "6.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "entities",
            "direct": false,
            "version": "7.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "entities",
            "direct": false,
            "version": "8.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "environment",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "es-define-property",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "es-errors",
            "direct": false,
            "version": "1.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "es-module-lexer",
            "direct": false,
            "version": "2.3.1",
            "ecosystem": "npm"
          },
          {
            "name": "es-object-atoms",
            "direct": false,
            "version": "1.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "esbuild",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "esbuild",
            "direct": false,
            "version": "^0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "escalade",
            "direct": false,
            "version": "3.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "escape-html",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "eslint-visitor-keys",
            "direct": false,
            "version": "3.4.3",
            "ecosystem": "npm"
          },
          {
            "name": "eslint-visitor-keys",
            "direct": false,
            "version": "5.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "estree-walker",
            "direct": false,
            "version": "3.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "etag",
            "direct": false,
            "version": "1.8.1",
            "ecosystem": "npm"
          },
          {
            "name": "eventsource",
            "direct": false,
            "version": "3.0.7",
            "ecosystem": "npm"
          },
          {
            "name": "eventsource-parser",
            "direct": false,
            "version": "3.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "expect-type",
            "direct": false,
            "version": "1.4.0",
            "ecosystem": "npm"
          },
          {
            "name": "express",
            "direct": false,
            "version": "5.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "express-rate-limit",
            "direct": false,
            "version": "8.6.1",
            "ecosystem": "npm"
          },
          {
            "name": "fast-deep-equal",
            "direct": false,
            "version": "3.1.3",
            "ecosystem": "npm"
          },
          {
            "name": "fast-string-truncated-width",
            "direct": false,
            "version": "3.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "fast-string-width",
            "direct": false,
            "version": "3.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "fast-uri",
            "direct": false,
            "version": "3.1.4",
            "ecosystem": "npm"
          },
          {
            "name": "fast-wrap-ansi",
            "direct": false,
            "version": "0.2.2",
            "ecosystem": "npm"
          },
          {
            "name": "fdir",
            "direct": false,
            "version": "6.5.0",
            "ecosystem": "npm"
          },
          {
            "name": "fflate",
            "direct": false,
            "version": "0.8.3",
            "ecosystem": "npm"
          },
          {
            "name": "finalhandler",
            "direct": false,
            "version": "2.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "forwarded",
            "direct": false,
            "version": "0.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "fresh",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "fsevents",
            "direct": false,
            "version": "2.3.3",
            "ecosystem": "npm"
          },
          {
            "name": "function-bind",
            "direct": false,
            "version": "1.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "get-caller-file",
            "direct": false,
            "version": "2.0.5",
            "ecosystem": "npm"
          },
          {
            "name": "get-intrinsic",
            "direct": false,
            "version": "1.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "get-proto",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "get-tsconfig",
            "direct": false,
            "version": "5.0.0-beta.5",
            "ecosystem": "npm"
          },
          {
            "name": "glob",
            "direct": false,
            "version": "13.0.6",
            "ecosystem": "npm"
          },
          {
            "name": "gopd",
            "direct": false,
            "version": "1.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "has-flag",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "has-symbols",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "hasown",
            "direct": false,
            "version": "2.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "highlight.js",
            "direct": false,
            "version": "10.7.3",
            "ecosystem": "npm"
          },
          {
            "name": "hono",
            "direct": false,
            "version": "4.12.32",
            "ecosystem": "npm"
          },
          {
            "name": "hookable",
            "direct": false,
            "version": "6.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "html-encoding-sniffer",
            "direct": false,
            "version": "6.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "html-escaper",
            "direct": false,
            "version": "2.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "htmlparser2",
            "direct": false,
            "version": "10.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "http-errors",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "iconv-lite",
            "direct": false,
            "version": "0.6.3",
            "ecosystem": "npm"
          },
          {
            "name": "iconv-lite",
            "direct": false,
            "version": "0.7.3",
            "ecosystem": "npm"
          },
          {
            "name": "import-without-cache",
            "direct": false,
            "version": "0.4.0",
            "ecosystem": "npm"
          },
          {
            "name": "inherits",
            "direct": false,
            "version": "2.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "ip-address",
            "direct": false,
            "version": "10.3.1",
            "ecosystem": "npm"
          },
          {
            "name": "ipaddr.js",
            "direct": false,
            "version": "1.9.1",
            "ecosystem": "npm"
          },
          {
            "name": "is-fullwidth-code-point",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "is-network-error",
            "direct": false,
            "version": "1.3.2",
            "ecosystem": "npm"
          },
          {
            "name": "is-potential-custom-element-name",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "is-promise",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "isexe",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "istanbul-lib-coverage",
            "direct": false,
            "version": "3.2.2",
            "ecosystem": "npm"
          },
          {
            "name": "istanbul-lib-report",
            "direct": false,
            "version": "3.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "istanbul-reports",
            "direct": false,
            "version": "3.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "jose",
            "direct": false,
            "version": "6.2.4",
            "ecosystem": "npm"
          },
          {
            "name": "js-tokens",
            "direct": false,
            "version": "10.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "json-schema",
            "direct": false,
            "version": "0.4.0",
            "ecosystem": "npm"
          },
          {
            "name": "json-schema-traverse",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "json-schema-typed",
            "direct": false,
            "version": "8.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "jsonc-parser",
            "direct": false,
            "version": "3.3.1",
            "ecosystem": "npm"
          },
          {
            "name": "lru-cache",
            "direct": false,
            "version": "11.5.2",
            "ecosystem": "npm"
          },
          {
            "name": "magic-string",
            "direct": false,
            "version": "0.30.21",
            "ecosystem": "npm"
          },
          {
            "name": "magicast",
            "direct": false,
            "version": "0.5.3",
            "ecosystem": "npm"
          },
          {
            "name": "make-dir",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "marked",
            "direct": false,
            "version": "9.1.6",
            "ecosystem": "npm"
          },
          {
            "name": "marked-terminal",
            "direct": false,
            "version": "7.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "math-intrinsics",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "mdn-data",
            "direct": false,
            "version": "2.27.1",
            "ecosystem": "npm"
          },
          {
            "name": "media-typer",
            "direct": false,
            "version": "1.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "merge-descriptors",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "mime-db",
            "direct": false,
            "version": "1.54.0",
            "ecosystem": "npm"
          },
          {
            "name": "mime-types",
            "direct": false,
            "version": "3.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "minimatch",
            "direct": false,
            "version": "10.2.6",
            "ecosystem": "npm"
          },
          {
            "name": "minipass",
            "direct": false,
            "version": "7.1.3",
            "ecosystem": "npm"
          },
          {
            "name": "ms",
            "direct": false,
            "version": "2.1.3",
            "ecosystem": "npm"
          },
          {
            "name": "mz",
            "direct": false,
            "version": "2.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "nanoid",
            "direct": false,
            "version": "3.3.16",
            "ecosystem": "npm"
          },
          {
            "name": "negotiator",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "node-emoji",
            "direct": false,
            "version": "2.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "nth-check",
            "direct": false,
            "version": "2.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "nypm",
            "direct": false,
            "version": "0.6.8",
            "ecosystem": "npm"
          },
          {
            "name": "object-assign",
            "direct": false,
            "version": "4.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "object-inspect",
            "direct": false,
            "version": "1.13.4",
            "ecosystem": "npm"
          },
          {
            "name": "obug",
            "direct": false,
            "version": "2.1.4",
            "ecosystem": "npm"
          },
          {
            "name": "on-finished",
            "direct": false,
            "version": "2.4.1",
            "ecosystem": "npm"
          },
          {
            "name": "once",
            "direct": false,
            "version": "1.4.0",
            "ecosystem": "npm"
          },
          {
            "name": "parse5",
            "direct": false,
            "version": "5.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "parse5",
            "direct": false,
            "version": "6.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "parse5",
            "direct": false,
            "version": "7.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "parse5",
            "direct": false,
            "version": "8.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "parse5-htmlparser2-tree-adapter",
            "direct": false,
            "version": "6.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "parse5-htmlparser2-tree-adapter",
            "direct": false,
            "version": "7.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "parse5-parser-stream",
            "direct": false,
            "version": "7.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "parseurl",
            "direct": false,
            "version": "1.3.3",
            "ecosystem": "npm"
          },
          {
            "name": "path-key",
            "direct": false,
            "version": "3.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "path-scurry",
            "direct": false,
            "version": "2.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "path-to-regexp",
            "direct": false,
            "version": "8.4.2",
            "ecosystem": "npm"
          },
          {
            "name": "pathe",
            "direct": false,
            "version": "2.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "picocolors",
            "direct": false,
            "version": "1.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "picomatch",
            "direct": false,
            "version": "4.0.5",
            "ecosystem": "npm"
          },
          {
            "name": "pkce-challenge",
            "direct": false,
            "version": "5.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "postcss",
            "direct": false,
            "version": "8.5.23",
            "ecosystem": "npm"
          },
          {
            "name": "proxy-addr",
            "direct": false,
            "version": "2.0.7",
            "ecosystem": "npm"
          },
          {
            "name": "punycode",
            "direct": false,
            "version": "2.3.1",
            "ecosystem": "npm"
          },
          {
            "name": "qs",
            "direct": false,
            "version": "6.15.3",
            "ecosystem": "npm"
          },
          {
            "name": "quansync",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "range-parser",
            "direct": false,
            "version": "1.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "raw-body",
            "direct": false,
            "version": "3.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "require-directory",
            "direct": false,
            "version": "2.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "require-from-string",
            "direct": false,
            "version": "2.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "resolve-pkg-maps",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "rolldown",
            "direct": false,
            "version": "1.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "rolldown-plugin-dts",
            "direct": false,
            "version": "0.27.2",
            "ecosystem": "npm"
          },
          {
            "name": "rollup",
            "direct": false,
            "version": "4.62.3",
            "ecosystem": "npm"
          },
          {
            "name": "router",
            "direct": false,
            "version": "2.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "safer-buffer",
            "direct": false,
            "version": "2.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "saxes",
            "direct": false,
            "version": "6.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "semver",
            "direct": false,
            "version": "7.8.5",
            "ecosystem": "npm"
          },
          {
            "name": "send",
            "direct": false,
            "version": "1.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "serve-static",
            "direct": false,
            "version": "2.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "setprototypeof",
            "direct": false,
            "version": "1.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "shebang-command",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "shebang-regex",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "side-channel",
            "direct": false,
            "version": "1.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "side-channel-list",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "side-channel-map",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "side-channel-weakmap",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "siginfo",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "sisteransi",
            "direct": false,
            "version": "1.0.5",
            "ecosystem": "npm"
          },
          {
            "name": "skin-tone",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "source-map-js",
            "direct": false,
            "version": "1.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "stackback",
            "direct": false,
            "version": "0.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "statuses",
            "direct": false,
            "version": "2.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "std-env",
            "direct": false,
            "version": "4.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "string-width",
            "direct": false,
            "version": "4.2.3",
            "ecosystem": "npm"
          },
          {
            "name": "strip-ansi",
            "direct": false,
            "version": "6.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "supports-color",
            "direct": false,
            "version": "7.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "supports-hyperlinks",
            "direct": false,
            "version": "3.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "symbol-tree",
            "direct": false,
            "version": "3.2.4",
            "ecosystem": "npm"
          },
          {
            "name": "tegami",
            "direct": false,
            "version": "1.2.7",
            "ecosystem": "npm"
          },
          {
            "name": "thenify",
            "direct": false,
            "version": "3.3.1",
            "ecosystem": "npm"
          },
          {
            "name": "thenify-all",
            "direct": false,
            "version": "1.6.0",
            "ecosystem": "npm"
          },
          {
            "name": "tinybench",
            "direct": false,
            "version": "2.9.0",
            "ecosystem": "npm"
          },
          {
            "name": "tinyexec",
            "direct": false,
            "version": "1.2.4",
            "ecosystem": "npm"
          },
          {
            "name": "tinyglobby",
            "direct": false,
            "version": "0.2.17",
            "ecosystem": "npm"
          },
          {
            "name": "tinyrainbow",
            "direct": false,
            "version": "3.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "tldts",
            "direct": false,
            "version": "7.4.9",
            "ecosystem": "npm"
          },
          {
            "name": "tldts-core",
            "direct": false,
            "version": "7.4.9",
            "ecosystem": "npm"
          },
          {
            "name": "toidentifier",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "tough-cookie",
            "direct": false,
            "version": "6.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "tr46",
            "direct": false,
            "version": "6.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "tree-kill",
            "direct": false,
            "version": "1.2.2",
            "ecosystem": "npm"
          },
          {
            "name": "ts-api-utils",
            "direct": false,
            "version": "2.5.0",
            "ecosystem": "npm"
          },
          {
            "name": "tsdown",
            "direct": false,
            "version": "0.22.14",
            "ecosystem": "npm"
          },
          {
            "name": "tslib",
            "direct": false,
            "version": "2.8.1",
            "ecosystem": "npm"
          },
          {
            "name": "turbo",
            "direct": false,
            "version": "2.10.7",
            "ecosystem": "npm"
          },
          {
            "name": "type-is",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "typescript",
            "direct": false,
            "version": "5.6.1-rc",
            "ecosystem": "npm"
          },
          {
            "name": "typescript",
            "direct": false,
            "version": "7.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "ultracite",
            "direct": false,
            "version": "7.9.4",
            "ecosystem": "npm"
          },
          {
            "name": "unconfig-core",
            "direct": false,
            "version": "7.5.0",
            "ecosystem": "npm"
          },
          {
            "name": "undici-types",
            "direct": false,
            "version": "7.29.0",
            "ecosystem": "npm"
          },
          {
            "name": "undici-types",
            "direct": false,
            "version": "8.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "unicode-emoji-modifier-base",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "unpipe",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "validate-npm-package-name",
            "direct": false,
            "version": "5.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "vary",
            "direct": false,
            "version": "1.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "verkit",
            "direct": false,
            "version": "0.3.1",
            "ecosystem": "npm"
          },
          {
            "name": "vite",
            "direct": false,
            "version": "7.3.5",
            "ecosystem": "npm"
          },
          {
            "name": "vitest",
            "direct": false,
            "version": "4.1.10",
            "ecosystem": "npm"
          },
          {
            "name": "w3c-xmlserializer",
            "direct": false,
            "version": "5.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "webidl-conversions",
            "direct": false,
            "version": "8.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "whatwg-encoding",
            "direct": false,
            "version": "3.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "whatwg-mimetype",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "whatwg-mimetype",
            "direct": false,
            "version": "5.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "whatwg-url",
            "direct": false,
            "version": "16.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "which",
            "direct": false,
            "version": "2.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "why-is-node-running",
            "direct": false,
            "version": "2.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "wrap-ansi",
            "direct": false,
            "version": "7.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "wrappy",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "wreq-js",
            "direct": false,
            "version": "2.3.1",
            "ecosystem": "npm"
          },
          {
            "name": "xml-name-validator",
            "direct": false,
            "version": "5.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "xmlchars",
            "direct": false,
            "version": "2.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "y18n",
            "direct": false,
            "version": "5.0.8",
            "ecosystem": "npm"
          },
          {
            "name": "yaml",
            "direct": false,
            "version": "2.9.0",
            "ecosystem": "npm"
          },
          {
            "name": "yargs",
            "direct": false,
            "version": "16.2.2",
            "ecosystem": "npm"
          },
          {
            "name": "yargs-parser",
            "direct": false,
            "version": "20.2.9",
            "ecosystem": "npm"
          },
          {
            "name": "yuku-ast",
            "direct": false,
            "version": "0.1.7",
            "ecosystem": "npm"
          },
          {
            "name": "yuku-codegen",
            "direct": false,
            "version": "0.5.48",
            "ecosystem": "npm"
          },
          {
            "name": "yuku-parser",
            "direct": false,
            "version": "0.5.48",
            "ecosystem": "npm"
          },
          {
            "name": "zod-to-json-schema",
            "direct": false,
            "version": "3.25.2",
            "ecosystem": "npm"
          }
        ],
        "collected": true,
        "truncated": false,
        "total_count": 482,
        "direct_count": 24,
        "indirect_count": 458
      }
    },
    "maintainership": {
      "issues": {
        "open_prs": 1,
        "merged_prs": 70,
        "open_issues": 0,
        "closed_ratio": null,
        "closed_issues": 0,
        "closed_unmerged_prs": 5
      },
      "bus_factor": 1,
      "bot_contributors": 2,
      "top_contributors": [
        {
          "type": "User",
          "login": "minpeter",
          "commits": 67,
          "avatar_url": "https://avatars.githubusercontent.com/u/62207008?v=4"
        }
      ],
      "contributors_sampled": 1,
      "top_contributor_share": 1
    },
    "quality_signals": {
      "has_ci": true,
      "has_tests": true,
      "ci_workflows": [
        "ci.yml",
        "monitor.yml",
        "release.yml",
        "security.yml"
      ],
      "has_docs_dir": false,
      "linter_configs": [],
      "has_editorconfig": true,
      "has_linter_config": false,
      "has_precommit_config": false
    },
    "security_signals": {
      "lockfiles": [
        "pnpm-lock.yaml"
      ],
      "scorecard": {
        "checks": [
          {
            "name": "Binary-Artifacts",
            "score": 10,
            "reason": "no binaries found in the repo",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#binary-artifacts"
          },
          {
            "name": "Branch-Protection",
            "score": null,
            "reason": "internal error: error during branchesHandler.setup: internal error: some github tokens can't read classic branch protection rules: https://github.com/ossf/scorecard-action/blob/main/docs/authentication/fine-grained-auth-token.md",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#branch-protection"
          },
          {
            "name": "CI-Tests",
            "score": 9,
            "reason": "28 out of 30 merged PRs checked by a CI test -- score normalized to 9",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#ci-tests"
          },
          {
            "name": "CII-Best-Practices",
            "score": 0,
            "reason": "no effort to earn an OpenSSF best practices badge detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#cii-best-practices"
          },
          {
            "name": "Code-Review",
            "score": 0,
            "reason": "Found 0/17 approved changesets -- score normalized to 0",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#code-review"
          },
          {
            "name": "Contributors",
            "score": 10,
            "reason": "project has 5 contributing companies or organizations",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#contributors"
          },
          {
            "name": "Dangerous-Workflow",
            "score": 10,
            "reason": "no dangerous workflow patterns detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dangerous-workflow"
          },
          {
            "name": "Dependency-Update-Tool",
            "score": 10,
            "reason": "update tool detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dependency-update-tool"
          },
          {
            "name": "Fuzzing",
            "score": 0,
            "reason": "project is not fuzzed",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#fuzzing"
          },
          {
            "name": "License",
            "score": 0,
            "reason": "license file not detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#license"
          },
          {
            "name": "Maintained",
            "score": 10,
            "reason": "30 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#maintained"
          },
          {
            "name": "Packaging",
            "score": 10,
            "reason": "packaging workflow detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#packaging"
          },
          {
            "name": "Pinned-Dependencies",
            "score": 0,
            "reason": "dependency not pinned by hash detected -- score normalized to 0",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#pinned-dependencies"
          },
          {
            "name": "SAST",
            "score": 8,
            "reason": "SAST tool detected but not run on all commits",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#sast"
          },
          {
            "name": "Security-Policy",
            "score": 0,
            "reason": "security policy file not detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#security-policy"
          },
          {
            "name": "Signed-Releases",
            "score": null,
            "reason": "no releases found",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#signed-releases"
          },
          {
            "name": "Token-Permissions",
            "score": 0,
            "reason": "detected GitHub workflow tokens with excessive permissions",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#token-permissions"
          },
          {
            "name": "Vulnerabilities",
            "score": 10,
            "reason": "0 existing vulnerabilities detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#vulnerabilities"
          }
        ],
        "commit": "27583f15b67b9b961934ac947de4492da4488f0e",
        "ran_at": "2026-07-30T12:17:50Z",
        "aggregate_score": 6,
        "scorecard_version": "v5.5.0"
      },
      "has_codeql_workflow": false,
      "has_security_policy": false,
      "has_dependabot_config": true
    },
    "contribution_flow": {
      "collected": true,
      "ci_last_run_at": "2026-07-29T07:59:58Z",
      "oldest_open_prs": [
        {
          "number": 74,
          "created_at": "2026-07-24T12:27:35Z",
          "last_comment_at": "2026-07-24T12:27:43Z",
          "last_comment_author": "coderabbitai"
        }
      ],
      "last_merged_pr_at": "2026-07-28T19:58:35Z",
      "ci_last_conclusion": "SUCCESS",
      "oldest_open_issues": []
    }
  },
  "config": {
    "disabled_metrics": [],
    "disabled_categories": [],
    "disabled_components": {}
  },
  "source": {
    "url": "https://github.com/minpeter/opensearch",
    "host": "github.com",
    "name": "opensearch",
    "owner": "minpeter"
  },
  "metrics": {
    "overall": {
      "key": "overall",
      "band": "moderate",
      "name": "Overall health",
      "note": null,
      "notes": [],
      "value": 60,
      "inputs": {
        "security": 68,
        "vitality": 82,
        "community": 31,
        "governance": 59,
        "engineering": 59
      },
      "components": []
    },
    "categories": [
      {
        "key": "vitality",
        "band": "good",
        "name": "Vitality",
        "value": 82,
        "weight": 0.22,
        "metrics": [
          {
            "key": "development_activity",
            "band": "good",
            "name": "Development activity",
            "note": null,
            "notes": [],
            "value": 70,
            "inputs": {
              "commits_last_year": 90,
              "human_commit_share": 0.744,
              "days_since_last_push": 1,
              "active_weeks_last_year": 9
            },
            "components": [
              {
                "key": "push_recency",
                "name": "Push recency",
                "detail": "last push 1 days ago",
                "points": 36,
                "status": "met",
                "details": [
                  {
                    "code": "push_recency",
                    "params": {
                      "days": 1
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_cadence",
                "name": "Commit cadence",
                "detail": "9/52 weeks with commits",
                "points": 6.2,
                "status": "partial",
                "details": [
                  {
                    "code": "commit_cadence_weeks",
                    "params": {
                      "weeks": 9
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_volume",
                "name": "Commit volume",
                "detail": "90 commits in the last year",
                "points": 17.6,
                "status": "partial",
                "details": [
                  {
                    "code": "commits_last_year",
                    "params": {
                      "count": 90
                    }
                  }
                ],
                "max_points": 18
              },
              {
                "key": "openssf_scorecard_maintained",
                "name": "OpenSSF Scorecard: Maintained",
                "detail": "30 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "release_discipline",
            "band": "excellent",
            "name": "Release discipline",
            "note": "Excluded from scoring (no data or not applicable): OpenSSF Scorecard: Signed-Releases. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "openssf_scorecard_signed_releases"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 100,
            "inputs": {
              "releases_count": 41,
              "latest_release_tag": "opensearch-mcp@0.2.13",
              "releases_from_tags": false,
              "days_since_latest_release": 8,
              "mean_days_between_releases": 0.1
            },
            "components": [
              {
                "key": "ships_releases",
                "name": "Ships releases",
                "detail": "41 releases published",
                "points": 27,
                "status": "met",
                "details": [
                  {
                    "code": "releases_published",
                    "params": {
                      "count": 41
                    }
                  }
                ],
                "max_points": 27
              },
              {
                "key": "release_recency",
                "name": "Release recency",
                "detail": "latest release 8 days ago",
                "points": 36,
                "status": "met",
                "details": [
                  {
                    "code": "release_recency",
                    "params": {
                      "days": 8
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "release_cadence",
                "name": "Release cadence",
                "detail": "a release every ~0.1 days",
                "points": 27,
                "status": "met",
                "details": [
                  {
                    "code": "release_cadence",
                    "params": {
                      "gap": 0.1
                    }
                  }
                ],
                "max_points": 27
              },
              {
                "key": "openssf_scorecard_signed_releases",
                "name": "OpenSSF Scorecard: Signed-Releases",
                "detail": "no releases found",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 10
              }
            ]
          },
          {
            "key": "abandonment",
            "band": "excellent",
            "name": "Abandonment",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "cap": null,
              "state": "unverified",
              "guards": [],
              "signals": [],
              "red_flag": false,
              "multiplier_pct": 100,
              "declared_reason": null,
              "unverified_reason": "repository_too_young",
              "unanswered_open_prs": null,
              "unanswered_open_issues": null,
              "days_since_last_merged_pr": null,
              "days_since_last_human_commit": null,
              "days_since_last_human_commit_is_floor": false
            },
            "components": [
              {
                "key": "project_is_still_maintained",
                "name": "Project is still maintained",
                "detail": "maintenance record not established from the collected data",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "abandonment_unverified",
                    "params": {}
                  }
                ],
                "max_points": 100
              }
            ]
          }
        ],
        "description": "Is the project alive — is code being written and are releases shipping?"
      },
      {
        "key": "community",
        "band": "at_risk",
        "name": "Community & Adoption",
        "value": 31,
        "weight": 0.18,
        "metrics": [
          {
            "key": "popularity",
            "band": "critical",
            "name": "Popularity & adoption",
            "note": null,
            "notes": [],
            "value": 16,
            "inputs": {
              "forks": 1,
              "stars": 11,
              "watchers": 0,
              "growth_state": "unverified",
              "growth_factor_pct": 100,
              "growth_unverified_reason": "no_history"
            },
            "components": [
              {
                "key": "stars",
                "name": "Stars",
                "detail": "11 stars",
                "points": 16.2,
                "status": "partial",
                "details": [
                  {
                    "code": "stars",
                    "params": {
                      "count": 11
                    }
                  }
                ],
                "max_points": 60
              },
              {
                "key": "forks",
                "name": "Forks",
                "detail": "1 forks",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "forks",
                    "params": {
                      "count": 1
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "watchers",
                "name": "Watchers",
                "detail": "0 watchers",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "watchers",
                    "params": {
                      "count": 0
                    }
                  }
                ],
                "max_points": 15
              }
            ]
          },
          {
            "key": "community_health",
            "band": "critical",
            "name": "Community health",
            "note": null,
            "notes": [],
            "value": 25,
            "inputs": {
              "has_readme": true,
              "has_license": false,
              "has_contributing": false,
              "has_issue_template": false,
              "has_code_of_conduct": false,
              "has_pull_request_template": false
            },
            "components": [
              {
                "key": "readme",
                "name": "README",
                "detail": null,
                "points": 22.5,
                "status": "met",
                "details": [],
                "max_points": 22.5
              },
              {
                "key": "license",
                "name": "License",
                "detail": "no license file detected",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "license_absent",
                    "params": {}
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributing_guide",
                "name": "CONTRIBUTING guide",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 18
              },
              {
                "key": "code_of_conduct",
                "name": "Code of conduct",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 13.5
              },
              {
                "key": "issue_template",
                "name": "Issue template",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.2
              },
              {
                "key": "pr_template",
                "name": "PR template",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 6.3
              }
            ]
          },
          {
            "key": "ecosystem_adoption",
            "band": "moderate",
            "name": "Ecosystem adoption (downloads)",
            "note": "Excluded from scoring (no data or not applicable): Registry dependents. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "registry_dependents"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 63,
            "inputs": {
              "packages": [
                "@minpeter/opensearch",
                "opensearch-mcp",
                "opensearch-ai-sdk"
              ],
              "dependents": null,
              "ecosystems": "npm",
              "total_downloads": null,
              "monthly_downloads": 5803
            },
            "components": [
              {
                "key": "monthly_downloads",
                "name": "Monthly downloads",
                "detail": "5,803 downloads/month across npm",
                "points": 50.2,
                "status": "partial",
                "details": [
                  {
                    "code": "downloads_monthly",
                    "params": {
                      "count": 5803,
                      "ecosystems": "npm"
                    }
                  }
                ],
                "max_points": 80
              },
              {
                "key": "registry_dependents",
                "name": "Registry dependents",
                "detail": "not reported by this ecosystem",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "not_reported_by_this_ecosystem",
                    "params": {}
                  }
                ],
                "max_points": 20
              }
            ]
          }
        ],
        "description": "Does the project have users, downloads, attention, and a welcoming setup for contributors?"
      },
      {
        "key": "governance",
        "band": "moderate",
        "name": "Sustainability & Governance",
        "value": 59,
        "weight": 0.24,
        "metrics": [
          {
            "key": "maintainer_resilience",
            "band": "critical",
            "name": "Maintainer resilience (bus factor)",
            "note": null,
            "notes": [],
            "value": 20,
            "inputs": {
              "bus_factor": 1,
              "contributors_sampled": 1,
              "top_contributor_share": 1
            },
            "components": [
              {
                "key": "bus_factor",
                "name": "Bus factor",
                "detail": "1 contributor(s) cover half of all commits",
                "points": 9,
                "status": "partial",
                "details": [
                  {
                    "code": "bus_factor",
                    "params": {
                      "count": 1
                    }
                  }
                ],
                "max_points": 54
              },
              {
                "key": "commit_distribution",
                "name": "Commit distribution",
                "detail": "top contributor authored 100% of commits",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "top_contributor_share",
                    "params": {
                      "share": 100
                    }
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributor_breadth",
                "name": "Contributor breadth",
                "detail": "1 contributors",
                "points": 1.4,
                "status": "partial",
                "details": [
                  {
                    "code": "contributors_sampled",
                    "params": {
                      "count": 1
                    }
                  }
                ],
                "max_points": 13.5
              },
              {
                "key": "openssf_scorecard_contributors",
                "name": "OpenSSF Scorecard: Contributors",
                "detail": "project has 5 contributing companies or organizations",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "responsiveness",
            "band": "moderate",
            "name": "Issue & PR responsiveness",
            "note": "Excluded from scoring (no data or not applicable): Issue resolution. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "issue_resolution"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 67,
            "inputs": {
              "merged_prs": 70,
              "open_issues": 0,
              "closed_issues": 0,
              "issue_closed_ratio": null,
              "closed_unmerged_prs": 5
            },
            "components": [
              {
                "key": "issue_resolution",
                "name": "Issue resolution",
                "detail": "no issues or no data",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_issues_or_data",
                    "params": {}
                  }
                ],
                "max_points": 46.75
              },
              {
                "key": "pr_acceptance",
                "name": "PR acceptance",
                "detail": "70/75 decided PRs merged",
                "points": 35.7,
                "status": "partial",
                "details": [
                  {
                    "code": "decided_prs_merged",
                    "params": {
                      "merged": 70,
                      "decided": 75
                    }
                  }
                ],
                "max_points": 38.25
              },
              {
                "key": "openssf_scorecard_code_review",
                "name": "OpenSSF Scorecard: Code-Review",
                "detail": "Found 0/17 approved changesets -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 15
              }
            ]
          },
          {
            "key": "stewardship",
            "band": "moderate",
            "name": "Ownership & stewardship",
            "note": "Excluded from scoring (no data or not applicable): Verified domain. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "verified_domain"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 64,
            "inputs": {
              "followers": 186,
              "owner_type": "User",
              "is_verified": null,
              "owner_login": "minpeter",
              "public_repos": 180,
              "account_age_days": 2327
            },
            "components": [
              {
                "key": "ownership_backing",
                "name": "Ownership backing",
                "detail": "personal (user) account",
                "points": 10,
                "status": "partial",
                "details": [
                  {
                    "code": "owner_personal",
                    "params": {}
                  }
                ],
                "max_points": 30
              },
              {
                "key": "verified_domain",
                "name": "Verified domain",
                "detail": "not applicable to user accounts",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "not_applicable_to_user_accounts",
                    "params": {}
                  }
                ],
                "max_points": 20
              },
              {
                "key": "owner_reach",
                "name": "Owner reach",
                "detail": "186 followers of minpeter",
                "points": 16.3,
                "status": "partial",
                "details": [
                  {
                    "code": "owner_followers",
                    "params": {
                      "count": 186,
                      "login": "minpeter"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "track_record",
                "name": "Track record",
                "detail": "180 public repos, account ~6 yr old",
                "points": 25,
                "status": "met",
                "details": [
                  {
                    "code": "public_repos",
                    "params": {
                      "count": 180
                    }
                  },
                  {
                    "code": "account_age_years",
                    "params": {
                      "years": 6
                    }
                  }
                ],
                "max_points": 25
              }
            ]
          },
          {
            "key": "package_maintenance",
            "band": "excellent",
            "name": "Package maintenance",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "packages": [
                "@minpeter/opensearch",
                "opensearch-mcp",
                "opensearch-ai-sdk"
              ],
              "ecosystems": "npm",
              "any_deprecated": false,
              "min_days_since_publish": 8
            },
            "components": [
              {
                "key": "published_resolvable",
                "name": "Published & resolvable",
                "detail": "3 package(s) on npm",
                "points": 25,
                "status": "met",
                "details": [
                  {
                    "code": "packages_published",
                    "params": {
                      "count": 3,
                      "ecosystems": "npm"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "publish_recency",
                "name": "Publish recency",
                "detail": "latest publish 8 days ago",
                "points": 35,
                "status": "met",
                "details": [
                  {
                    "code": "publish_recency",
                    "params": {
                      "days": 8
                    }
                  }
                ],
                "max_points": 35
              },
              {
                "key": "version_history",
                "name": "Version history",
                "detail": "20 published versions",
                "points": 20,
                "status": "met",
                "details": [
                  {
                    "code": "published_versions",
                    "params": {
                      "count": 20
                    }
                  }
                ],
                "max_points": 20
              },
              {
                "key": "not_deprecated",
                "name": "Not deprecated",
                "detail": "active, not deprecated or yanked",
                "points": 20,
                "status": "met",
                "details": [
                  {
                    "code": "package_not_deprecated",
                    "params": {}
                  }
                ],
                "max_points": 20
              }
            ]
          }
        ],
        "description": "Will the project survive its people — bus factor, responsiveness, who backs it, and package upkeep?"
      },
      {
        "key": "engineering",
        "band": "moderate",
        "name": "Engineering Quality",
        "value": 59,
        "weight": 0.2,
        "metrics": [
          {
            "key": "engineering_practices",
            "band": "good",
            "name": "Engineering practices",
            "note": null,
            "notes": [],
            "value": 72,
            "inputs": {
              "has_ci": true,
              "has_tests": true,
              "has_editorconfig": true,
              "has_linter_config": false,
              "has_precommit_config": false
            },
            "components": [
              {
                "key": "ci_workflows",
                "name": "CI workflows",
                "detail": "4 workflow(s)",
                "points": 24,
                "status": "met",
                "details": [
                  {
                    "code": "ci_workflows",
                    "params": {
                      "count": 4
                    }
                  }
                ],
                "max_points": 24
              },
              {
                "key": "tests_present",
                "name": "Tests present",
                "detail": null,
                "points": 24,
                "status": "met",
                "details": [],
                "max_points": 24
              },
              {
                "key": "linter_config",
                "name": "Linter config",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 16
              },
              {
                "key": "pre_commit_hooks",
                "name": "Pre-commit hooks",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 9.6
              },
              {
                "key": "editorconfig",
                "name": ".editorconfig",
                "detail": null,
                "points": 6.4,
                "status": "met",
                "details": [],
                "max_points": 6.4
              },
              {
                "key": "openssf_scorecard_ci_tests",
                "name": "OpenSSF Scorecard: CI-Tests",
                "detail": "28 out of 30 merged PRs checked by a CI test -- score normalized to 9",
                "points": 18,
                "status": "partial",
                "details": [],
                "max_points": 20
              }
            ]
          },
          {
            "key": "documentation",
            "band": "at_risk",
            "name": "Documentation",
            "note": null,
            "notes": [],
            "value": 40,
            "inputs": {
              "topics": [],
              "has_wiki": false,
              "homepage": null,
              "has_readme": true,
              "has_docs_dir": false,
              "has_description": true
            },
            "components": [
              {
                "key": "readme",
                "name": "README",
                "detail": null,
                "points": 30,
                "status": "met",
                "details": [],
                "max_points": 30
              },
              {
                "key": "documentation_directory",
                "name": "Documentation directory",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 25
              },
              {
                "key": "documentation_homepage_site",
                "name": "Documentation / homepage site",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 15
              },
              {
                "key": "repository_description",
                "name": "Repository description",
                "detail": null,
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              },
              {
                "key": "topics",
                "name": "Topics",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              },
              {
                "key": "wiki",
                "name": "Wiki",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              }
            ]
          }
        ],
        "description": "Are baseline engineering and documentation practices in place?"
      },
      {
        "key": "security",
        "band": "moderate",
        "name": "Security",
        "value": 68,
        "weight": 0.16,
        "metrics": [
          {
            "key": "security_posture",
            "band": "moderate",
            "name": "Security posture",
            "note": "Excluded from scoring (no data or not applicable): Branch-Protection, Signed-Releases. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "branch_protection",
                    "signed_releases"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 60,
            "inputs": {
              "source": "openssf_scorecard",
              "checks_evaluated": 16,
              "scorecard_version": "v5.5.0",
              "checks_inconclusive": 2,
              "scorecard_aggregate": 6
            },
            "components": [
              {
                "key": "binary_artifacts",
                "name": "Binary-Artifacts",
                "detail": "no binaries found in the repo",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "branch_protection",
                "name": "Branch-Protection",
                "detail": "internal error: error during branchesHandler.setup: internal error: some github tokens can't read classic branch protection rules: https://github.com/ossf/scorecard-action/blob/main/docs/authentication/fine-grained-auth-token.md",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 7.5
              },
              {
                "key": "ci_tests",
                "name": "CI-Tests",
                "detail": "28 out of 30 merged PRs checked by a CI test -- score normalized to 9",
                "points": 2.2,
                "status": "partial",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "cii_best_practices",
                "name": "CII-Best-Practices",
                "detail": "no effort to earn an OpenSSF best practices badge detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "code_review",
                "name": "Code-Review",
                "detail": "Found 0/17 approved changesets -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "contributors",
                "name": "Contributors",
                "detail": "project has 5 contributing companies or organizations",
                "points": 2.5,
                "status": "met",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "dangerous_workflow",
                "name": "Dangerous-Workflow",
                "detail": "no dangerous workflow patterns detected",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              },
              {
                "key": "dependency_update_tool",
                "name": "Dependency-Update-Tool",
                "detail": "update tool detected",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "fuzzing",
                "name": "Fuzzing",
                "detail": "project is not fuzzed",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "license",
                "name": "License",
                "detail": "license file not detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "maintained",
                "name": "Maintained",
                "detail": "30 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "packaging",
                "name": "Packaging",
                "detail": "packaging workflow detected",
                "points": 5,
                "status": "met",
                "details": [],
                "max_points": 5
              },
              {
                "key": "pinned_dependencies",
                "name": "Pinned-Dependencies",
                "detail": "dependency not pinned by hash detected -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "sast",
                "name": "SAST",
                "detail": "SAST tool detected but not run on all commits",
                "points": 4,
                "status": "partial",
                "details": [],
                "max_points": 5
              },
              {
                "key": "security_policy",
                "name": "Security-Policy",
                "detail": "security policy file not detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "signed_releases",
                "name": "Signed-Releases",
                "detail": "no releases found",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 7.5
              },
              {
                "key": "token_permissions",
                "name": "Token-Permissions",
                "detail": "detected GitHub workflow tokens with excessive permissions",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "vulnerabilities",
                "name": "Vulnerabilities",
                "detail": "0 existing vulnerabilities detected",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              }
            ]
          },
          {
            "key": "dependency_advisories",
            "band": "excellent",
            "name": "Dependency advisories",
            "note": "Excluded from scoring (no data or not applicable): No advisories left outstanding. Remaining weights renormalized. Matched the npm:@minpeter/opensearch@0.1.1 runtime dependency closure — what installing the published package pulls in — 164 packages. Reachability is not analyzed.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "no_advisories_left_outstanding"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              },
              {
                "code": "advisories_scope_published",
                "params": {
                  "package": "npm:@minpeter/opensearch@0.1.1",
                  "assessed": 164
                }
              },
              {
                "code": "advisories_reachability",
                "params": {}
              }
            ],
            "value": 100,
            "inputs": {
              "source": "osv",
              "advisories": 0,
              "affected_packages": 0,
              "assessed_packages": 164,
              "unassessed_packages": 0,
              "affected_by_severity": "none",
              "direct_affected_packages": 0
            },
            "components": [
              {
                "key": "direct_dependencies_free_of_known_advisories",
                "name": "Direct dependencies free of known advisories",
                "detail": "no direct dependency carries a known advisory",
                "points": 35,
                "status": "met",
                "details": [
                  {
                    "code": "no_direct_advisories",
                    "params": {}
                  }
                ],
                "max_points": 35
              },
              {
                "key": "indirect_dependencies_free_of_known_advisories",
                "name": "Indirect dependencies free of known advisories",
                "detail": "no indirect dependency carries a known advisory",
                "points": 25,
                "status": "met",
                "details": [
                  {
                    "code": "no_indirect_advisories",
                    "params": {}
                  }
                ],
                "max_points": 25
              },
              {
                "key": "no_advisories_left_outstanding",
                "name": "No advisories left outstanding",
                "detail": "no advisory carries a publication date",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "advisories_no_publication_date",
                    "params": {}
                  }
                ],
                "max_points": 40
              }
            ]
          },
          {
            "key": "malicious_dependencies",
            "band": "excellent",
            "name": "Malicious dependencies",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "source": "osv",
              "meaning": "reported as a malicious package by the OpenSSF corpus; the remedy is removal or moving off the compromised name, never an upgrade of the same artifact. Versions the registry has since pulled are listed but not scored",
              "packages": [],
              "red_flag": false,
              "assessed_packages": 164,
              "malicious_packages": 0,
              "direct_malicious_packages": 0,
              "withdrawn_malicious_packages": 0,
              "installable_malicious_packages": 0
            },
            "components": [
              {
                "key": "no_dependency_reported_as_a_malicious_package",
                "name": "No dependency reported as a malicious package",
                "detail": "no dependency is reported as a malicious package",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "no_malicious_dependencies",
                    "params": {}
                  }
                ],
                "max_points": 100
              }
            ]
          },
          {
            "key": "high_risk_jurisdiction_exposure",
            "band": "excellent",
            "name": "High-Risk Jurisdiction Exposure",
            "note": "Only high-confidence self-published location evidence affects this multiplier. Ambiguous matches are review-only; country evidence is not proof of nationality, citizenship, legal registration, malicious intent, or sanctions status.",
            "notes": [
              {
                "code": "jurisdiction_evidence_limits",
                "params": {}
              }
            ],
            "value": 100,
            "inputs": {
              "meaning": "self-published location evidence; not nationality or citizenship",
              "red_flag": false,
              "exposures": [],
              "policy_countries": [
                "Russia",
                "Iran",
                "North Korea"
              ],
              "commit_weight_rule": {
                "min_commits": 50,
                "min_commit_share": 0.1
              },
              "review_only_matches": 0,
              "below_threshold_exposures": [],
              "assessed_self_published_locations": 3
            },
            "components": [
              {
                "key": "policy_exposure_multiplier",
                "name": "Policy exposure multiplier",
                "detail": "no confirmed policy-scope location match",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "jurisdiction_no_match",
                    "params": {}
                  }
                ],
                "max_points": 100
              }
            ]
          }
        ],
        "description": "Are visible security and supply-chain practices strong, with no malicious dependency and no unresolved high-risk jurisdiction exposure?"
      },
      {
        "key": "ai_readiness",
        "band": "moderate",
        "name": "AI Readiness",
        "value": 66,
        "weight": 0,
        "metrics": [
          {
            "key": "ai_agent_context",
            "band": "excellent",
            "name": "Agent context & guidance",
            "note": null,
            "notes": [],
            "value": 85,
            "inputs": {
              "has_llms_txt": false,
              "legible_history_share": 0.985,
              "agent_instruction_files": [
                "AGENTS.md"
              ],
              "agent_instruction_max_bytes": 5028
            },
            "components": [
              {
                "key": "agent_instructions",
                "name": "Agent instructions",
                "detail": "AGENTS.md",
                "points": 45,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "AGENTS.md"
                    }
                  }
                ],
                "max_points": 45
              },
              {
                "key": "machine_readable_docs_llms_txt",
                "name": "Machine-readable docs (llms.txt)",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 15
              },
              {
                "key": "legible_commit_history",
                "name": "Legible commit history",
                "detail": "66 of 67 human commits state their intent (structured subject or explanatory body)",
                "points": 40,
                "status": "met",
                "details": [
                  {
                    "code": "legible_history",
                    "params": {
                      "legible": 66,
                      "sampled": 67
                    }
                  }
                ],
                "max_points": 40
              }
            ]
          },
          {
            "key": "ai_verify_loop",
            "band": "moderate",
            "name": "Verify loop (build / test / typecheck)",
            "note": null,
            "notes": [],
            "value": 55,
            "inputs": {
              "has_nix": false,
              "has_tests": true,
              "lockfiles": [
                "pnpm-lock.yaml"
              ],
              "has_dockerfile": false,
              "typed_language": true,
              "bootstrap_files": [],
              "has_devcontainer": false,
              "has_linter_config": false,
              "typecheck_configs": [
                "packages/opensearch-ai-sdk/tsconfig.json",
                "packages/opensearch-mcp/tsconfig.json",
                "packages/opensearch/tsconfig.json",
                "tsconfig.json"
              ],
              "agent_commit_share": 0.022,
              "toolchain_manifests": [],
              "dependency_bot_commit_share": 0.044
            },
            "components": [
              {
                "key": "one_command_bootstrap",
                "name": "One-command bootstrap",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 18
              },
              {
                "key": "automated_tests",
                "name": "Automated tests",
                "detail": null,
                "points": 22,
                "status": "met",
                "details": [],
                "max_points": 22
              },
              {
                "key": "lint_format_config",
                "name": "Lint / format config",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 11
              },
              {
                "key": "static_type_checking",
                "name": "Static type checking",
                "detail": "packages/opensearch-ai-sdk/tsconfig.json, packages/opensearch-mcp/tsconfig.json, packages/opensearch/tsconfig.json, tsconfig.json",
                "points": 11,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "packages/opensearch-ai-sdk/tsconfig.json, packages/opensearch-mcp/tsconfig.json, packages/opensearch/tsconfig.json, tsconfig.json"
                    }
                  }
                ],
                "max_points": 11
              },
              {
                "key": "reproducible_environment",
                "name": "Reproducible environment",
                "detail": "lockfile",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "lockfile"
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "demonstrated_agent_practice",
                "name": "Demonstrated agent practice",
                "detail": "2 of the last 90 commits agent-authored or agent-credited",
                "points": 4.4,
                "status": "partial",
                "details": [
                  {
                    "code": "agent_authored_commits",
                    "params": {
                      "count": 2,
                      "sampled": 90
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "automated_maintenance",
                "name": "Automated maintenance",
                "detail": "4 of the last 90 commits are automated dependency updates",
                "points": 8,
                "status": "met",
                "details": [
                  {
                    "code": "dependency_bot_commits",
                    "params": {
                      "count": 4,
                      "sampled": 90
                    }
                  }
                ],
                "max_points": 8
              },
              {
                "key": "openssf_scorecard_pinned_dependencies",
                "name": "OpenSSF Scorecard: Pinned-Dependencies",
                "detail": "dependency not pinned by hash detected -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "ai_code_legibility",
            "band": "excellent",
            "name": "Code legibility for models",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "primary_language": "TypeScript",
              "largest_source_bytes": 23918,
              "source_files_sampled": 265,
              "oversized_source_files": 0
            },
            "components": [
              {
                "key": "type_checkable_code",
                "name": "Type-checkable code",
                "detail": "TypeScript (statically typed)",
                "points": 45,
                "status": "met",
                "details": [
                  {
                    "code": "statically_typed_language",
                    "params": {
                      "language": "TypeScript"
                    }
                  }
                ],
                "max_points": 45
              },
              {
                "key": "manageable_file_sizes",
                "name": "Manageable file sizes",
                "detail": "0/265 source files over 60KB",
                "points": 55,
                "status": "met",
                "details": [
                  {
                    "code": "oversized_source_files",
                    "params": {
                      "kb": 60,
                      "sampled": 265,
                      "oversized": 0
                    }
                  }
                ],
                "max_points": 55
              }
            ]
          },
          {
            "key": "ai_interfaces",
            "band": "critical",
            "name": "Machine-readable interfaces",
            "note": null,
            "notes": [],
            "value": 20,
            "inputs": {
              "example_dirs": [],
              "has_mcp_signal": true,
              "api_schema_files": []
            },
            "components": [
              {
                "key": "api_schema_openapi_graphql_proto",
                "name": "API schema (OpenAPI/GraphQL/proto)",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 40
              },
              {
                "key": "mcp_server",
                "name": "MCP server",
                "detail": null,
                "points": 20,
                "status": "met",
                "details": [],
                "max_points": 20
              },
              {
                "key": "runnable_examples",
                "name": "Runnable examples",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 40
              }
            ]
          }
        ],
        "description": "How well is the repo equipped to be developed and maintained with AI coding agents? An independent, experimental badge — weight 0.0, so it is surfaced on its own and does not affect the overall health score."
      }
    ],
    "metrics_version": "1.14.0"
  },
  "warnings": [
    "Star history unavailable: GitHub GraphQL error: Resource not accessible by personal access token"
  ],
  "report_type": "repository",
  "generated_at": "2026-07-30T12:18:09.725770Z",
  "schema_version": "0.27.0",
  "badge_url": "https://raw.githubusercontent.com/inspect-software/badges/main/v1/m/minpeter/opensearch.svg",
  "full_name": "minpeter/opensearch",
  "license_state": "absent",
  "license_spdx": null
}

Bewertungen sind Signale, keine Garantien. Sie spiegeln öffentlich sichtbare Praxis auf GitHub wider — kein Code-Audit und keine Sicherheitsgarantie.

Fehlende Daten werden ausgeschlossen und die Gewichte neu normiert, nie als null bewertet. Die Methodik ist versioniert und offen: Metriken v1.14.0, Schema v0.27.0 — vollständige Methodik · Metriken-Wiki.

Wie ein einzelnes Ergebnis im Gesamtregister steht: aggregierte Statistikennpm.