Öffentliches Register
Software-GesundheitsberichtSchema 0.26.0 · Metriken 1.13.0 · 2026-07-22 19:55 UTC

Lincoln504 / pi-research

Web research for pi with smart and safe tooling + agent system

TypeScriptMIT★ 20 Sterne⑂ 2 Forksseit Apr. 2026Auf GitHub ansehen ↗

Lincoln504/pi-research erreicht einen Gesundheitsindex von 60 von 100 und liegt damit im Bereich Mittel. Am stärksten schneidet es bei Vitality (79/100) ab, am schwächsten bei Community & Adoption (40/100). Zuletzt vor 5 Tagen 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

LincolnPersönliches Konto
1 Follower2 öffentliche Reposseit Okt. 2019

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@lincoln504/pi-research1.0.82.03121vor 5 Tagenpipi-packagepi-extensionopenclawagent-skillresearchagentweb-searchscrapingstealth-browsercamoufoxsecuritystack-exchange

Metriken nach Kategorie

Vitalität

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

79Gut · 22 % des Gesamtindex
Wie die Bewertung erfolgt
36/36Push-Aktualität — letzter Push vor 5 Tagen
11.1/36Commit-Rhythmus — 16/52 Wochen mit Commits
18/18Commit-Volumen — 1.196 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_year1.196
human_commit_share0,91
days_since_last_push5
active_weeks_last_year16
Wie die Bewertung erfolgt
27/27Liefert Releases aus — 1 Releases veröffentlicht
36/36Release-Aktualität — letztes Release vor 5 Tagen
12.6/27Release-Rhythmus — Rhythmus unbekannt (nur ein Release)
0/10OpenSSF Scorecard: Signed-Releases — keine Daten
Verwendete Eingangsdaten
releases_count1
latest_release_tagv1.0.8
releases_from_tagsnein
days_since_latest_release5
mean_days_between_releases
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?

40Gefährdet · 18 % des Gesamtindex
Wie die Bewertung erfolgt
20.7/60Stars — 20 Stars
0/25Forks — 2 Forks
0/15Watcher — 0 Watcher
Verwendete Eingangsdaten
forks2
stars20
watchers0
growth_stateunverified
growth_factor_pct100
growth_unverified_reasonno_history
Wie die Bewertung erfolgt
22.5/22.5README
22.5/22.5Lizenz — anerkannte Lizenz (MIT)
0/18CONTRIBUTING-Leitfaden
0/13.5Verhaltenskodex
0/7.2Issue-Vorlage
0/6.3PR-Vorlage
Verwendete Eingangsdaten
has_readmeja
has_licenseja
has_contributingnein
has_issue_templatenein
has_code_of_conductnein
has_pull_request_templatenein
Wie die Bewertung erfolgt
44.1/80Downloads pro Monat — 2.031 Downloads/Monat über npm
0/20Abhängige in der Registry — von diesem Ökosystem nicht ausgewiesen
Verwendete Eingangsdaten
packages@lincoln504/pi-research
dependents
ecosystemsnpm
total_downloads
monthly_downloads2.031
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?

45Gefährdet · 24 % des Gesamtindex
Wie die Bewertung erfolgt
9/54Bus-Faktor — 1 Beitragende decken die Hälfte aller Commits ab
0.1/22.5Commit-Verteilung — wichtigste beitragende Person verfasste 100 % der Commits
2.7/13.5Breite der Beitragenden — 2 Beitragende
0/10OpenSSF Scorecard: Contributors — project has 0 contributing companies or organizations -- score normalized to 0
Verwendete Eingangsdaten
bus_factor1
contributors_sampled2
top_contributor_share0,996
Wie die Bewertung erfolgt
0/46.8Issue-Lösungsquote — keine Issues oder keine Daten
27.3/38.3PR-Annahme — 5/7 entschiedene PRs gemergt
0/15OpenSSF Scorecard: Code-Review — Found 0/30 approved changesets -- score normalized to 0
Verwendete Eingangsdaten
merged_prs5
open_issues0
closed_issues0
issue_closed_ratio
closed_unmerged_prs2
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
2.2/25Reichweite des Inhabers — 1 Follower von Lincoln504
15.5/25Kontohistorie — 2 öffentliche Repos, Kontoalter ca. 6 Jahre
Verwendete Eingangsdaten
followers1
owner_typeUser
is_verified
owner_loginLincoln504
public_repos2
account_age_days2.470
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 — 1 Paket(e) auf npm
35/35Veröffentlichungsaktualität — letzte Veröffentlichung vor 5 Tagen
20/20Versionshistorie — 21 veröffentlichte Versionen
20/20Nicht veraltet — aktiv, nicht veraltet oder zurückgezogen
Verwendete Eingangsdaten
packages@lincoln504/pi-research
ecosystemsnpm
any_deprecatednein
min_days_since_publish5

Engineering-Qualität

Sind grundlegende Engineering- und Dokumentationspraktiken vorhanden?

74Gut · 20 % des Gesamtindex
Wie die Bewertung erfolgt
24/24CI-Workflows — 2 Workflow(s)
24/24Tests vorhanden
16/16Linter-Konfiguration — eslint.config.js
0/9.6Pre-Commit-Hooks
0/6.4.editorconfig
0/20OpenSSF Scorecard: CI-Tests — keine Daten
Verwendete Eingangsdaten
has_cija
has_testsja
has_editorconfignein
has_linter_configja
has_precommit_confignein
Von der Bewertung ausgeschlossen (keine Daten oder nicht anwendbar): OpenSSF Scorecard: CI-Tests. Die verbleibenden Gewichte wurden renormalisiert.
Wie die Bewertung erfolgt
30/30README
25/25Dokumentationsverzeichnis
0/15Dokumentations-/Homepage-Site
10/10Repository-Beschreibung
0/10Topics
0/10Wiki
Verwendete Eingangsdaten
topics
has_wikinein
homepage
has_readmeja
has_docs_dirja
has_descriptionja

Sicherheit

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

59Mittel · 16 % des Gesamtindex

Sicherheitslage

49Gefährdet
Wie die Bewertung erfolgt
7.5/7.5Binary-Artifacts — no binaries found in the repo
0/7.5Branch-Protection — branch protection not enabled on development/release branches
0/2.5CI-Tests — keine Daten
0/2.5CII-Best-Practices — no effort to earn an OpenSSF best practices badge detected
0/7.5Code-Review — Found 0/30 approved changesets -- score normalized to 0
0/2.5Contributors — project has 0 contributing companies or organizations -- score normalized to 0
10/10Dangerous-Workflow — no dangerous workflow patterns detected
0/7.5Dependency-Update-Tool — no update tool detected
0/5Fuzzing — project is not fuzzed
2.5/2.5Lizenz — license file detected
7.5/7.5Maintained — 30 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10
0/5Packaging — keine Daten
1/5Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 2
5/5SAST — SAST tool detected: CodeQL
0/5Security-Policy — security policy file not detected
0/7.5Signed-Releases — keine Daten
7.5/7.5Token-Permissions — GitHub workflow tokens follow principle of least privilege
3/7.5Vulnerabilities — 6 existing vulnerabilities detected
Verwendete Eingangsdaten
sourceopenssf_scorecard
checks_evaluated15
scorecard_versionv5.5.0
checks_inconclusive3
scorecard_aggregate4,9
Von der Bewertung ausgeschlossen (keine Daten oder nicht anwendbar): ci_tests, packaging, 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
0/25Indirekte Abhängigkeiten ohne bekannte Advisories — transitive Menge in diesem Bereich nicht von Entwicklungs- und Test-Abhängigkeiten trennbar
0/40Keine offenen Advisories — kein Advisory trägt ein Veröffentlichungsdatum
Verwendete Eingangsdaten
sourceosv
advisories6
affected_packages5
assessed_packages629
unassessed_packages0
affected_by_severityhigh 4, moderate 1
direct_affected_packages0
Von der Bewertung ausgeschlossen (keine Daten oder nicht anwendbar): Indirekte Abhängigkeiten ohne bekannte Advisories, Keine offenen Advisories. Die verbleibenden Gewichte wurden renormalisiert. 629 aufgelöste Abhängigkeiten wurden mit OSV abgeglichen. Dieses Repository veröffentlicht kein Paket, das der Index auflöst; bewertet wurde daher der Abhängigkeitsgraph des Repositorys. Dieser Graph vermischt Entwicklungs- und Test-Pins mit ausgelieferten Abhängigkeiten, daher werden nur die deklarierten Laufzeit-Abhängigkeiten bewertet; transitive Befunde werden als Kontext ausgewiesen und fließen nicht in die Bewertung ein. 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.

63Mittel · 0 % des Gesamtindex
Wie die Bewertung erfolgt
0/45Agentenanweisungen — keine CLAUDE.md / AGENTS.md / Editor-Regeln
0/15Maschinenlesbare Doku (llms.txt)
40/40Lesbare Commit-Historie — 88 von 91 menschlichen Commits benennen ihre Absicht (strukturierter Betreff oder erläuternder Text)
Verwendete Eingangsdaten
has_llms_txtnein
legible_history_share0,967
agent_instruction_files
agent_instruction_max_bytes
Wie die Bewertung erfolgt
0/18Bootstrap mit einem Befehl
22/22Automatisierte Tests
11/11Lint-/Format-Konfiguration — eslint.config.js
11/11Statische Typprüfung — tsconfig.json
10/10Reproduzierbare Umgebung — lockfile
10/10Belegte Agentenpraxis — 28 der letzten 100 Commits von Agenten verfasst oder ihnen zugeschrieben
0/8Automatisierte Wartung — keine automatisierten Abhängigkeits-Updates beobachtet
2/10OpenSSF Scorecard: Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 2
Verwendete Eingangsdaten
has_nixnein
has_testsja
lockfilespackage-lock.json
has_dockerfilenein
typed_languageja
bootstrap_files
has_devcontainernein
has_linter_configja
typecheck_configstsconfig.json
agent_commit_share0,28
toolchain_manifests
dependency_bot_commit_share0
Wie die Bewertung erfolgt
45/45Typprüfbarer Code — TypeScript (statisch typisiert)
55/55Handhabbare Dateigrößen — 0/357 Quelldateien über 60 KB
Verwendete Eingangsdaten
primary_languageTypeScript
largest_source_bytes57.491
source_files_sampled357
oversized_source_files0

Eckdaten

20GitHub-Sterne
2Mitwirkende
1.196Commits, letzte 12 Monate
5Tage seit letztem Push
1Releases
1Bus-Faktor
0offene Issues
npmPaket-Ökosysteme

Warnungen zur Datenerhebung

  • Star history unavailable: GitHub GraphQL error: Resource not accessible by personal access token
  • deps.dev does not index npm:@lincoln504/pi-research@1.0.8; advisories assessed against the repository dependency graph instead

Weitere Details

Stern- und Fork-Verlauf 0 ★ / 2 ⇿
0Sterne
2Forks

Wann jeder Stern und Fork hinzugefügt wurde, von GitHub erfasst und nach Tagen gruppiert. Das kumulierte Wachstum steht direkt über den täglichen Zugängen, aus denen es besteht, sodass beide gegeneinander lesbar sind: stetiger organischer Zuwachs sieht ganz anders aus als ein abrupter, kurzlebiger Ausschlag. Wo dieser Unterschied messbar ist, wird er als Wachstumsauthentizität ausgewiesen.

111222212026-052026-052026-05
OpenSSF Scorecard 4.9 / 10
4.9Gesamtwert

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-22 19:55 UTC

10Binary-Artifactsno binaries found in the repo
0Branch-Protectionbranch protection not enabled on development/release branches
k. A.CI-Testsno pull request found
0CII-Best-Practicesno effort to earn an OpenSSF best practices badge detected
0Code-ReviewFound 0/30 approved changesets -- score normalized to 0
0Contributorsproject has 0 contributing companies or organizations -- score normalized to 0
10Dangerous-Workflowno dangerous workflow patterns detected
0Dependency-Update-Toolno update tool detected
0Fuzzingproject is not fuzzed
10Licenselicense file detected
10Maintained30 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10
k. A.Packagingpackaging workflow not detected
2Pinned-Dependenciesdependency not pinned by hash detected -- score normalized to 2
10SASTSAST tool detected: CodeQL
0Security-Policysecurity policy file not detected
k. A.Signed-Releasesno releases found
10Token-PermissionsGitHub workflow tokens follow principle of least privilege
4Vulnerabilities6 existing vulnerabilities detected
Direkte Abhängigkeiten 19
RegistryPaketVersionsvorgabeManifest
npm@earendil-works/pi-ai>=0.80.7 <1package.json
npm@earendil-works/pi-coding-agent>=0.80.7 <1package.json
npm@earendil-works/pi-tui>=0.80.7 <1package.json
npm@huggingface/transformers4.2.0package.json
npm@kreuzberg/html-to-markdown-node^3.5.5package.json
npm@lancedb/lancedb0.29.0package.json
npmapache-arrow21.1.0package.json
npmbgutils-js^3.2.0package.json
npmcamoufox-js^0.10.2package.json
npmesbuild^0.28.1package.json
npmimpit0.13.0package.json
npmjsdom^29.1.1package.json
npmnode-html-markdown^2.0.0package.json
npmpdf-oxide-wasm^0.3.70package.json
npmplaywright-core1.60.0package.json
npmpoolifier^5.3.2package.json
npmtypebox1.1.38package.json
npmundici^8.6.0package.json
npmyoutubei.js^17.2.0package.json
Alle Abhängigkeiten 629

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

RegistryPaketVersionBeziehung
npm@earendil-works/pi-ai0.80.7direkt
npm@earendil-works/pi-coding-agent0.80.7direkt
npm@earendil-works/pi-tui0.80.7direkt
npm@huggingface/transformers4.2.0direkt
npm@kreuzberg/html-to-markdown-node3.7.2direkt
npm@lancedb/lancedb0.29.0direkt
npmapache-arrow21.1.0direkt
npmbgutils-js3.2.0direkt
npmcamoufox-js0.10.2direkt
npmesbuild0.28.1direkt
npmimpit0.13.0direkt
npmjsdom29.1.1direkt
npmnode-html-markdown2.0.0direkt
npmpdf-oxide-wasm0.3.70direkt
npmplaywright-core1.60.0direkt
npmpoolifier5.3.2direkt
npmtypebox1.1.38direkt
npmundici7.28.0direkt
npmundici8.5.0direkt
npmundici8.6.0direkt
npmyoutubei.js17.2.0direkt
npm@anthropic-ai/sdk0.91.1indirekt
npm@asamuzakjp/css-color5.1.11indirekt
npm@asamuzakjp/dom-selector7.1.1indirekt
npm@asamuzakjp/generational-cache1.0.1indirekt
npm@asamuzakjp/nwsapi2.3.9indirekt
npm@aws-crypto/crc325.2.0indirekt
npm@aws-crypto/sha256-browser5.2.0indirekt
npm@aws-crypto/sha256-js5.2.0indirekt
npm@aws-crypto/supports-web-crypto5.2.0indirekt
npm@aws-crypto/util5.2.0indirekt
npm@aws-sdk/client-bedrock-runtime3.1048.0indirekt
npm@aws-sdk/core3.974.11indirekt
npm@aws-sdk/core3.974.14indirekt
npm@aws-sdk/credential-provider-env3.972.37indirekt
npm@aws-sdk/credential-provider-env3.972.40indirekt
npm@aws-sdk/credential-provider-http3.972.39indirekt
npm@aws-sdk/credential-provider-http3.972.42indirekt
npm@aws-sdk/credential-provider-ini3.972.41indirekt
npm@aws-sdk/credential-provider-ini3.972.44indirekt
npm@aws-sdk/credential-provider-login3.972.41indirekt
npm@aws-sdk/credential-provider-login3.972.44indirekt
npm@aws-sdk/credential-provider-node3.972.42indirekt
npm@aws-sdk/credential-provider-node3.972.45indirekt
npm@aws-sdk/credential-provider-process3.972.37indirekt
npm@aws-sdk/credential-provider-process3.972.40indirekt
npm@aws-sdk/credential-provider-sso3.972.41indirekt
npm@aws-sdk/credential-provider-sso3.972.44indirekt
npm@aws-sdk/credential-provider-web-identity3.972.41indirekt
npm@aws-sdk/credential-provider-web-identity3.972.44indirekt
npm@aws-sdk/eventstream-handler-node3.972.16indirekt
npm@aws-sdk/eventstream-handler-node3.972.17indirekt
npm@aws-sdk/middleware-eventstream3.972.12indirekt
npm@aws-sdk/middleware-eventstream3.972.13indirekt
npm@aws-sdk/middleware-websocket3.972.19indirekt
npm@aws-sdk/middleware-websocket3.972.22indirekt
npm@aws-sdk/nested-clients3.997.12indirekt
npm@aws-sdk/nested-clients3.997.9indirekt
npm@aws-sdk/signature-v4-multi-region3.996.27indirekt
npm@aws-sdk/signature-v4-multi-region3.996.29indirekt
npm@aws-sdk/token-providers3.1048.0indirekt
npm@aws-sdk/token-providers3.1054.0indirekt
npm@aws-sdk/types3.973.8indirekt
npm@aws-sdk/types3.973.9indirekt
npm@aws-sdk/util-locate-window3.965.5indirekt
npm@aws-sdk/xml-builder3.972.24indirekt
npm@aws-sdk/xml-builder3.972.26indirekt
npm@aws/lambda-invoke-store0.2.4indirekt
npm@babel/helper-string-parser7.29.7indirekt
npm@babel/helper-validator-identifier7.29.7indirekt
npm@babel/parser7.29.7indirekt
npm@babel/runtime7.29.2indirekt
npm@babel/types7.29.7indirekt
npm@bcoe/v8-coverage1.0.2indirekt
npm@bramus/specificity2.4.2indirekt
npm@bufbuild/protobuf2.12.1indirekt
npm@csstools/color-helpers6.1.0indirekt
npm@csstools/css-calc3.2.1indirekt
npm@csstools/css-color-parser4.1.9indirekt
npm@csstools/css-parser-algorithms4.0.0indirekt
npm@csstools/css-syntax-patches-for-csstree1.1.5indirekt
npm@csstools/css-tokenizer4.0.0indirekt
npm@earendil-works/pi-agent-core0.80.7indirekt
npm@emnapi/core1.10.0indirekt
npm@emnapi/core1.11.1indirekt
npm@emnapi/runtime1.10.0indirekt
npm@emnapi/wasi-threads1.2.1indirekt
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.9.1indirekt
npm@eslint-community/regexpp4.12.2indirekt
npm@eslint/config-array0.23.5indirekt
npm@eslint/config-helpers0.6.0indirekt
npm@eslint/core1.2.1indirekt
npm@eslint/js10.0.1indirekt
npm@eslint/object-schema3.0.5indirekt
npm@eslint/plugin-kit0.7.1indirekt
npm@exodus/bytes1.15.1indirekt
npm@google/genai1.52.0indirekt
npm@huggingface/jinja0.5.9indirekt
npm@huggingface/tokenizers0.1.3indirekt
npm@humanfs/core0.19.1indirekt
npm@humanfs/node0.16.7indirekt
npm@humanwhocodes/module-importer1.0.1indirekt
npm@humanwhocodes/retry0.4.3indirekt
npm@img/colour1.1.0indirekt
npm@img/sharp-darwin-arm640.34.5indirekt
npm@img/sharp-darwin-x640.34.5indirekt
npm@img/sharp-libvips-darwin-arm641.2.4indirekt
npm@img/sharp-libvips-darwin-x641.2.4indirekt
npm@img/sharp-libvips-linux-arm1.2.4indirekt
npm@img/sharp-libvips-linux-arm641.2.4indirekt
npm@img/sharp-libvips-linux-ppc641.2.4indirekt
npm@img/sharp-libvips-linux-riscv641.2.4indirekt
npm@img/sharp-libvips-linux-s390x1.2.4indirekt
npm@img/sharp-libvips-linux-x641.2.4indirekt
npm@img/sharp-libvips-linuxmusl-arm641.2.4indirekt
npm@img/sharp-libvips-linuxmusl-x641.2.4indirekt
npm@img/sharp-linux-arm0.34.5indirekt
npm@img/sharp-linux-arm640.34.5indirekt
npm@img/sharp-linux-ppc640.34.5indirekt
npm@img/sharp-linux-riscv640.34.5indirekt
npm@img/sharp-linux-s390x0.34.5indirekt
npm@img/sharp-linux-x640.34.5indirekt
npm@img/sharp-linuxmusl-arm640.34.5indirekt
npm@img/sharp-linuxmusl-x640.34.5indirekt
npm@img/sharp-wasm320.34.5indirekt
npm@img/sharp-win32-arm640.34.5indirekt
npm@img/sharp-win32-ia320.34.5indirekt
npm@img/sharp-win32-x640.34.5indirekt
npm@jridgewell/resolve-uri3.1.2indirekt
npm@jridgewell/sourcemap-codec1.5.5indirekt
npm@jridgewell/trace-mapping0.3.31indirekt
npm@kreuzberg/html-to-markdown-node-darwin-arm643.7.2indirekt
npm@kreuzberg/html-to-markdown-node-darwin-x643.7.2indirekt
npm@kreuzberg/html-to-markdown-node-linux-arm64-gnu3.7.2indirekt
npm@kreuzberg/html-to-markdown-node-linux-x64-gnu3.7.2indirekt
npm@kreuzberg/html-to-markdown-node-win32-arm64-msvc3.7.2indirekt
npm@kreuzberg/html-to-markdown-node-win32-x64-msvc3.7.2indirekt
npm@lancedb/lancedb-darwin-arm640.29.0indirekt
npm@lancedb/lancedb-linux-arm64-gnu0.29.0indirekt
npm@lancedb/lancedb-linux-arm64-musl0.29.0indirekt
npm@lancedb/lancedb-linux-x64-gnu0.29.0indirekt
npm@lancedb/lancedb-linux-x64-musl0.29.0indirekt
npm@lancedb/lancedb-win32-arm64-msvc0.29.0indirekt
npm@lancedb/lancedb-win32-x64-msvc0.29.0indirekt
npm@mariozechner/clipboard0.3.9indirekt
npm@mariozechner/clipboard-darwin-arm640.3.9indirekt
npm@mariozechner/clipboard-darwin-universal0.3.9indirekt
npm@mariozechner/clipboard-darwin-x640.3.9indirekt
npm@mariozechner/clipboard-linux-arm64-gnu0.3.9indirekt
npm@mariozechner/clipboard-linux-arm64-musl0.3.9indirekt
npm@mariozechner/clipboard-linux-riscv64-gnu0.3.9indirekt
npm@mariozechner/clipboard-linux-x64-gnu0.3.9indirekt
npm@mariozechner/clipboard-linux-x64-musl0.3.9indirekt
npm@mariozechner/clipboard-win32-arm64-msvc0.3.9indirekt
npm@mariozechner/clipboard-win32-x64-msvc0.3.9indirekt
npm@mistralai/mistralai2.2.6indirekt
npm@napi-rs/wasm-runtime1.1.5indirekt
npm@nodable/entities2.1.0indirekt
npm@nolyfill/domexception1.0.28indirekt
npm@opentelemetry/api1.9.0indirekt
npm@opentelemetry/semantic-conventions1.41.1indirekt
npm@oxc-project/types0.133.0indirekt
npm@protobufjs/aspromise1.1.2indirekt
npm@protobufjs/base641.1.2indirekt
npm@protobufjs/codegen2.0.5indirekt
npm@protobufjs/eventemitter1.1.1indirekt
npm@protobufjs/fetch1.1.1indirekt
npm@protobufjs/float1.0.2indirekt
npm@protobufjs/path1.1.2indirekt
npm@protobufjs/pool1.1.0indirekt
npm@protobufjs/utf81.1.1indirekt
npm@rolldown/binding-android-arm641.0.3indirekt
npm@rolldown/binding-darwin-arm641.0.3indirekt
npm@rolldown/binding-darwin-x641.0.3indirekt
npm@rolldown/binding-freebsd-x641.0.3indirekt
npm@rolldown/binding-linux-arm-gnueabihf1.0.3indirekt
npm@rolldown/binding-linux-arm64-gnu1.0.3indirekt
npm@rolldown/binding-linux-arm64-musl1.0.3indirekt
npm@rolldown/binding-linux-ppc64-gnu1.0.3indirekt
npm@rolldown/binding-linux-s390x-gnu1.0.3indirekt
npm@rolldown/binding-linux-x64-gnu1.0.3indirekt
npm@rolldown/binding-linux-x64-musl1.0.3indirekt
npm@rolldown/binding-openharmony-arm641.0.3indirekt
npm@rolldown/binding-wasm32-wasi1.0.3indirekt
npm@rolldown/binding-win32-arm64-msvc1.0.3indirekt
npm@rolldown/binding-win32-x64-msvc1.0.3indirekt
npm@rolldown/pluginutils1.0.1indirekt
npm@silvia-odwyer/photon-node0.3.4indirekt
npm@sindresorhus/is4.6.0indirekt
npm@smithy/core3.24.3indirekt
npm@smithy/core3.24.4indirekt
npm@smithy/credential-provider-imds4.3.3indirekt
npm@smithy/credential-provider-imds4.3.4indirekt
npm@smithy/fetch-http-handler5.4.3indirekt
npm@smithy/fetch-http-handler5.4.4indirekt
npm@smithy/is-array-buffer2.2.0indirekt
npm@smithy/node-http-handler4.7.3indirekt
npm@smithy/signature-v45.4.3indirekt
npm@smithy/signature-v45.4.4indirekt
npm@smithy/types4.14.2indirekt
npm@smithy/util-buffer-from2.2.0indirekt
npm@smithy/util-utf82.3.0indirekt
npm@standard-schema/spec1.1.0indirekt
npm@swc/helpers0.5.21indirekt
npm@tybys/wasm-util0.10.2indirekt
npm@types/chai5.2.3indirekt
npm@types/command-line-args5.2.3indirekt
npm@types/command-line-usage5.0.4indirekt
npm@types/deep-eql4.0.2indirekt
npm@types/esrecurse4.3.1indirekt
npm@types/estree1.0.8indirekt
npm@types/jsdom28.0.3indirekt
npm@types/json-schema7.0.15indirekt
npm@types/node22.19.19indirekt
npm@types/node24.12.4indirekt
npm@types/node25.5.2indirekt
npm@types/retry0.12.0indirekt
npm@types/tough-cookie4.0.5indirekt
npm@typescript-eslint/eslint-plugin8.60.0indirekt
npm@typescript-eslint/parser8.60.0indirekt
npm@typescript-eslint/project-service8.60.0indirekt
npm@typescript-eslint/scope-manager8.60.0indirekt
npm@typescript-eslint/tsconfig-utils8.60.0indirekt
npm@typescript-eslint/type-utils8.60.0indirekt
npm@typescript-eslint/types8.60.0indirekt
npm@typescript-eslint/typescript-estree8.60.0indirekt
npm@typescript-eslint/utils8.60.0indirekt
npm@typescript-eslint/visitor-keys8.60.0indirekt
npm@vitest/coverage-v84.1.7indirekt
npm@vitest/expect4.1.7indirekt
npm@vitest/mocker4.1.7indirekt
npm@vitest/pretty-format4.1.7indirekt
npm@vitest/runner4.1.7indirekt
npm@vitest/snapshot4.1.7indirekt
npm@vitest/spy4.1.7indirekt
npm@vitest/utils4.1.7indirekt
npm@webgpu/types0.1.70indirekt
npmacorn8.16.0indirekt
npmacorn-jsx5.3.2indirekt
npmacorn-jsx-walk2.0.0indirekt
npmacorn-loose8.5.2indirekt
npmacorn-walk8.3.5indirekt
npmadm-zip0.5.17indirekt
npmagent-base7.1.4indirekt
npmajv6.14.0indirekt
npmajv8.20.0indirekt
npmansi-regex5.0.1indirekt
npmansi-styles4.3.0indirekt
npmarg5.0.2indirekt
npmarray-back6.2.3indirekt
npmassertion-error2.0.1indirekt
npmast-v8-to-istanbul1.0.0indirekt
npmastral-regex2.0.0indirekt
npmbalanced-match4.0.4indirekt
npmbase64-js1.5.1indirekt
npmbaseline-browser-mapping2.10.20indirekt
npmbetter-sqlite312.9.0indirekt
npmbidi-js1.0.3indirekt
npmbignumber.js9.3.1indirekt
npmbindings1.5.0indirekt
npmbl4.1.0indirekt
npmboolbase1.0.0indirekt
npmboolean3.2.0indirekt
npmbowser2.14.1indirekt
npmbrace-expansion5.0.6indirekt
npmbrowserslist4.28.2indirekt
npmbuffer5.7.1indirekt
npmbuffer-equal-constant-time1.0.1indirekt
npmcallsites3.1.0indirekt
npmcaniuse-lite1.0.30001788indirekt
npmchai6.2.2indirekt
npmchalk4.1.2indirekt
npmchalk5.6.2indirekt
npmchalk-template0.4.0indirekt
npmchownr1.1.4indirekt
npmcli-progress3.12.0indirekt
npmcolor-convert2.0.1indirekt
npmcolor-name1.1.4indirekt
npmcolor-support1.1.3indirekt
npmcommand-line-args6.0.2indirekt
npmcommand-line-usage7.0.4indirekt
npmcommander14.0.3indirekt
npmcompare-versions5.0.3indirekt
npmconvert-source-map2.0.0indirekt
npmcross-spawn7.0.6indirekt
npmcss-select5.2.2indirekt
npmcss-tree3.2.1indirekt
npmcss-what6.2.2indirekt
npmdata-uri-to-buffer4.0.1indirekt
npmdata-urls7.0.0indirekt
npmdebug4.4.3indirekt
npmdecimal.js10.6.0indirekt
npmdecompress-response6.0.0indirekt
npmdeep-extend0.6.0indirekt
npmdeep-is0.1.4indirekt
npmdefine-data-property1.1.4indirekt
npmdefine-properties1.2.1indirekt
npmdependency-cruiser17.4.2indirekt
npmdepngn0.6.0indirekt
npmdetect-libc2.1.2indirekt
npmdetect-node2.1.0indirekt
npmdiff8.0.4indirekt
npmdom-serializer2.0.0indirekt
npmdomelementtype2.3.0indirekt
npmdomhandler5.0.3indirekt
npmdomutils3.2.2indirekt
npmdot-prop6.0.1indirekt
npmecdsa-sig-formatter1.0.11indirekt
npmelectron-to-chromium1.5.342indirekt
npmemoji-regex8.0.0indirekt
npmend-of-stream1.4.5indirekt
npmenhanced-resolve5.22.0indirekt
npmentities4.5.0indirekt
npmentities8.0.0indirekt
npmes-define-property1.0.1indirekt
npmes-errors1.3.0indirekt
npmes-module-lexer2.0.0indirekt
npmes6-error4.1.1indirekt
npmescalade3.2.0indirekt
npmescape-string-regexp4.0.0indirekt
npmeslint10.4.0indirekt
npmeslint-scope9.1.2indirekt
npmeslint-visitor-keys3.4.3indirekt
npmeslint-visitor-keys5.0.1indirekt
npmespree11.2.0indirekt
npmesquery1.7.0indirekt
npmesrecurse4.3.0indirekt
npmestraverse5.3.0indirekt
npmestree-walker3.0.3indirekt
npmesutils2.0.3indirekt
npmexpand-template2.0.3indirekt
npmexpect-type1.3.0indirekt
npmextend3.0.2indirekt
npmfancy-log2.0.0indirekt
npmfast-deep-equal3.1.3indirekt
npmfast-json-stable-stringify2.1.0indirekt
npmfast-levenshtein2.0.6indirekt
npmfast-uri3.1.2indirekt
npmfast-xml-builder1.2.0indirekt
npmfast-xml-parser5.7.3indirekt
npmfdir6.5.0indirekt
npmfetch-blob3.2.0indirekt
npmfflate0.8.3indirekt
npmfile-entry-cache8.0.0indirekt
npmfile-uri-to-path1.0.0indirekt
npmfind-replace5.0.2indirekt
npmfind-up5.0.0indirekt
npmfingerprint-generator2.1.82indirekt
npmflat-cache4.0.1indirekt
npmflatbuffers25.9.23indirekt
npmflatted3.4.2indirekt
npmformdata-polyfill4.0.10indirekt
npmfs-constants1.0.0indirekt
npmfsevents2.3.3indirekt
npmfunction-bind1.1.2indirekt
npmgaxios7.1.4indirekt
npmgcp-metadata8.1.2indirekt
npmgenerative-bayesian-network2.1.82indirekt
npmget-east-asian-width1.6.0indirekt
npmgithub-from-package0.0.0indirekt
npmglob13.0.6indirekt
npmglob-parent6.0.2indirekt
npmglobal-agent3.0.0indirekt
npmglobal-directory4.0.1indirekt
npmglobalthis1.0.4indirekt
npmgoogle-auth-library10.6.2indirekt
npmgoogle-logging-utils1.1.3indirekt
npmgopd1.2.0indirekt
npmgraceful-fs4.2.11indirekt
npmguid-typescript1.0.9indirekt
npmhas-flag4.0.0indirekt
npmhas-property-descriptors1.0.2indirekt
npmhasown2.0.3indirekt
npmhe1.2.0indirekt
npmheader-generator2.1.82indirekt
npmhighlight.js10.7.3indirekt
npmhosted-git-info9.0.3indirekt
npmhtml-encoding-sniffer6.0.0indirekt
npmhtml-escaper2.0.2indirekt
npmhttp-proxy-agent7.0.2indirekt
npmhttps-proxy-agent7.0.6indirekt
npmieee7541.2.1indirekt
npmignore5.3.2indirekt
npmignore7.0.5indirekt
npmimpit-darwin-arm640.13.0indirekt
npmimpit-darwin-x640.13.0indirekt
npmimpit-linux-arm64-gnu0.13.0indirekt
npmimpit-linux-arm64-musl0.13.0indirekt
npmimpit-linux-x64-gnu0.13.0indirekt
npmimpit-linux-x64-musl0.13.0indirekt
npmimpit-win32-arm64-msvc0.13.0indirekt
npmimpit-win32-x64-msvc0.13.0indirekt
npmimurmurhash0.1.4indirekt
npminherits2.0.4indirekt
npmini1.3.8indirekt
npmini4.1.1indirekt
npminterpret3.1.1indirekt
npmis-core-module2.16.2indirekt
npmis-extglob2.1.1indirekt
npmis-fullwidth-code-point3.0.0indirekt
npmis-glob4.0.3indirekt
npmis-installed-globally1.0.0indirekt
npmis-obj2.0.0indirekt
npmis-path-inside4.0.0indirekt
npmis-potential-custom-element-name1.0.1indirekt
npmisexe2.0.0indirekt
npmistanbul-lib-coverage3.2.2indirekt
npmistanbul-lib-report3.0.1indirekt
npmistanbul-reports3.2.0indirekt
npmjiti2.7.0indirekt
npmjs-tokens10.0.0indirekt
npmjson-bigint1.0.0indirekt
npmjson-bignum0.0.3indirekt
npmjson-buffer3.0.1indirekt
npmjson-schema-to-ts3.1.1indirekt
npmjson-schema-traverse0.4.1indirekt
npmjson-schema-traverse1.0.0indirekt
npmjson-stable-stringify-without-jsonify1.0.1indirekt
npmjson-stringify-safe5.0.1indirekt
npmjson52.2.3indirekt
npmjwa2.0.1indirekt
npmjws4.0.1indirekt
npmkeyv4.5.4indirekt
npmkleur3.0.3indirekt
npmkleur4.1.5indirekt
npmlanguage-subtag-registry0.3.23indirekt
npmlanguage-tags2.1.0indirekt
npmlevn0.4.1indirekt
npmlightningcss1.32.0indirekt
npmlightningcss-android-arm641.32.0indirekt
npmlightningcss-darwin-arm641.32.0indirekt
npmlightningcss-darwin-x641.32.0indirekt
npmlightningcss-freebsd-x641.32.0indirekt
npmlightningcss-linux-arm-gnueabihf1.32.0indirekt
npmlightningcss-linux-arm64-gnu1.32.0indirekt
npmlightningcss-linux-arm64-musl1.32.0indirekt
npmlightningcss-linux-x64-gnu1.32.0indirekt
npmlightningcss-linux-x64-musl1.32.0indirekt
npmlightningcss-win32-arm64-msvc1.32.0indirekt
npmlightningcss-win32-x64-msvc1.32.0indirekt
npmlocate-path6.0.0indirekt
npmlodash.camelcase4.3.0indirekt
npmlodash.truncate4.4.2indirekt
npmlong5.3.2indirekt
npmlru-cache11.4.0indirekt
npmlru-cache11.5.1indirekt
npmmagic-string0.30.21indirekt
npmmagicast0.5.2indirekt
npmmake-dir4.0.0indirekt
npmmarked18.0.5indirekt
npmmatcher3.0.0indirekt
npmmaxmind5.0.6indirekt
npmmdn-data2.27.1indirekt
npmmeriyah6.1.4indirekt
npmmimic-response3.1.0indirekt
npmminimatch10.2.5indirekt
npmminimist1.2.8indirekt
npmminipass7.1.3indirekt
npmmkdirp-classic0.5.3indirekt
npmmmdb-lib3.0.2indirekt
npmms2.1.3indirekt
npmnanoid3.3.12indirekt
npmnapi-build-utils2.0.0indirekt
npmnatural-compare1.4.0indirekt
npmnode-abi3.89.0indirekt
npmnode-domexception1.0.0indirekt
npmnode-fetch3.3.2indirekt
npmnode-html-parser6.1.13indirekt
npmnode-releases2.0.37indirekt
npmnpm-check-updates22.2.1indirekt
npmnth-check2.1.1indirekt
npmobject-keys1.1.1indirekt
npmobug2.1.1indirekt
npmonce1.4.0indirekt
npmonnxruntime-common1.24.3indirekt
npmonnxruntime-node1.24.3indirekt
npmonnxruntime-web1.24.3indirekt
npmopenai6.26.0indirekt
npmoptionator0.9.4indirekt
npmow0.28.2indirekt
npmp-limit3.1.0indirekt
npmp-locate5.0.0indirekt
npmp-retry4.6.2indirekt
npmparse58.0.1indirekt
npmpartial-json0.1.7indirekt
npmpath-exists4.0.0indirekt
npmpath-expression-matcher1.5.0indirekt
npmpath-key3.1.1indirekt
npmpath-parse1.0.7indirekt
npmpath-scurry2.0.2indirekt
npmpathe2.0.3indirekt
npmpicocolors1.1.1indirekt
npmpicomatch4.0.4indirekt
npmplatform1.3.6indirekt
npmpostcss8.5.15indirekt
npmprebuild-install7.1.3indirekt
npmprelude-ls1.2.1indirekt
npmpretty-bytes7.1.0indirekt
npmprompts2.4.2indirekt
npmproper-lockfile4.1.2indirekt
npmprotobufjs7.6.4indirekt
npmpump3.0.4indirekt
npmpunycode2.3.1indirekt
npmrc1.2.8indirekt
npmreadable-stream3.6.2indirekt
npmrechoir0.8.0indirekt
npmreflect-metadata0.2.2indirekt
npmregexp-tree0.1.27indirekt
npmrequire-from-string2.0.2indirekt
npmresolve1.22.12indirekt
npmretry0.12.0indirekt
npmretry0.13.1indirekt
npmroarr2.15.4indirekt
npmrolldown1.0.3indirekt
npmsafe-buffer5.2.1indirekt
npmsafe-regex2.1.1indirekt
npmsax1.6.0indirekt
npmsaxes6.0.0indirekt
npmsemver7.8.0indirekt
npmsemver7.8.1indirekt
npmsemver-compare1.0.0indirekt
npmserialize-error7.0.1indirekt
npmsharp0.34.5indirekt
npmshebang-command2.0.0indirekt
npmshebang-regex3.0.0indirekt
npmsiginfo2.0.0indirekt
npmsignal-exit3.0.7indirekt
npmsimple-concat1.0.1indirekt
npmsimple-get4.0.1indirekt
npmsisteransi1.0.5indirekt
npmslice-ansi4.0.0indirekt
npmsource-map-js1.2.1indirekt
npmsprintf-js1.1.3indirekt
npmstackback0.0.2indirekt
npmstd-env4.0.0indirekt
npmstring-width4.2.3indirekt
npmstring_decoder1.3.0indirekt
npmstrip-ansi6.0.1indirekt
npmstrip-bom3.0.0indirekt
npmstrip-json-comments2.0.1indirekt
npmstrnum2.3.0indirekt
npmsupports-color7.2.0indirekt
npmsupports-preserve-symlinks-flag1.0.0indirekt
npmsymbol-tree3.2.4indirekt
npmtable6.9.0indirekt
npmtable-layout4.1.1indirekt
npmtapable2.3.3indirekt
npmtar-fs2.1.4indirekt
npmtar-stream2.2.0indirekt
npmtiny-lru13.0.0indirekt
npmtinybench2.9.0indirekt
npmtinyexec1.0.4indirekt
npmtinyglobby0.2.17indirekt
npmtinyrainbow3.1.0indirekt
npmtldts7.4.4indirekt
npmtldts-core7.4.4indirekt
npmtough-cookie6.0.1indirekt
npmtr466.0.0indirekt
npmts-algebra2.0.0indirekt
npmts-api-utils2.5.0indirekt
npmtsconfig-paths4.2.0indirekt
npmtsconfig-paths-webpack-plugin4.2.0indirekt
npmtslib2.8.1indirekt
npmtunnel-agent0.6.0indirekt
npmtype-check0.4.0indirekt
npmtype-fest0.13.1indirekt
npmtypescript6.0.3indirekt
npmtypical7.3.0indirekt
npmua-parser-js1.0.41indirekt
npmundici-types6.21.0indirekt
npmundici-types7.16.0indirekt
npmundici-types7.18.2indirekt
npmundici-types7.28.0indirekt
npmupdate-browserslist-db1.2.3indirekt
npmuri-js4.4.1indirekt
npmutil-deprecate1.0.2indirekt
npmvali-date1.0.0indirekt
npmvite8.0.16indirekt
npmvitest4.1.7indirekt
npmw3c-xmlserializer5.0.0indirekt
npmwatskeburt5.0.3indirekt
npmweb-streams-polyfill3.3.3indirekt
npmwebgpu0.4.0indirekt
npmwebidl-conversions8.0.1indirekt
npmwhatwg-mimetype5.0.0indirekt
npmwhatwg-url16.0.1indirekt
npmwhich2.0.2indirekt
npmwhy-is-node-running2.3.0indirekt
npmword-wrap1.2.5indirekt
npmwordwrapjs5.1.1indirekt
npmwrappy1.0.2indirekt
npmws8.21.0indirekt
npmxml-name-validator5.0.0indirekt
npmxml-naming0.1.0indirekt
npmxml2js0.6.2indirekt
npmxmlbuilder11.0.1indirekt
npmxmlchars2.2.0indirekt
npmyaml2.9.0indirekt
npmyocto-queue0.1.0indirekt
npmzod3.25.76indirekt
npmzod4.3.6indirekt
npmzod-to-json-schema3.25.2indirekt
Abhängigkeits-Advisories 5

Dieses Repository veröffentlicht kein vom Index auflösbares Paket, daher wurde sein eigener Abhängigkeitsgraph bewertet – 629 Pakete, darunter auch Entwicklungs- und Test-Pins, die nie ausgeliefert werden: 5 tragen bekannte Advisories, davon 0 direkte.

PaketVersionBeziehungSchweregradAdvisoriesBehoben in
adm-zip0.5.17indirekthoch10.6.0
brace-expansion5.0.6indirekthoch15.0.7
fast-uri3.1.2indirekthoch24.1.1
sharp0.34.5indirekthoch10.35.0
protobufjs7.6.4indirektmittel18.6.6

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": 80378,
      "has_wiki": false,
      "homepage": null,
      "languages": {
        "JavaScript": 54471,
        "TypeScript": 3273861
      },
      "pushed_at": "2026-07-17T15:04:06Z",
      "created_at": "2026-04-05T23:05:32Z",
      "owner_type": "User",
      "updated_at": "2026-07-17T15:05:31Z",
      "description": "Web research for pi with smart and safe tooling + agent system",
      "is_archived": false,
      "is_disabled": false,
      "license_spdx": "MIT",
      "default_branch": "main",
      "license_spdx_raw": "MIT",
      "primary_language": "TypeScript",
      "significant_languages": [
        "TypeScript"
      ]
    },
    "owner": {
      "blog": null,
      "name": "Lincoln",
      "type": "User",
      "login": "Lincoln504",
      "company": null,
      "location": null,
      "followers": 1,
      "avatar_url": "https://avatars.githubusercontent.com/u/56658553?v=4",
      "created_at": "2019-10-16T22:41:49Z",
      "is_verified": null,
      "public_repos": 2,
      "account_age_days": 2470
    },
    "license": {
      "state": "standard",
      "spdx_id": "MIT",
      "raw_spdx": "MIT",
      "file_present": true,
      "scorecard_found": true,
      "profile_has_license": true
    },
    "activity": {
      "releases": [
        {
          "tag": "v1.0.8",
          "kind": "patch",
          "published_at": "2026-07-17T15:04:12Z"
        }
      ],
      "recent_commits": [
        {
          "oid": "873f305df196e6506600fd2443a9452435c86c86",
          "body": null,
          "is_bot": false,
          "headline": "Merge branch 'main' of https://github.com/Lincoln504/pi-research",
          "author_name": "Lincoln504",
          "author_login": "Lincoln504",
          "committed_at": "2026-07-17T15:03:51Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7b1750764f49a23664db0abb7505c16af743e561",
          "body": "- Add comprehensive CHANGELOG.md documenting all versions from 0.1.13 through 1.0.7\n- Include CHANGELOG.md in published package (docs/CHANGELOG.md)\n- Add 'Maximum 4 simultaneous calls' constraint to research-tool-usage prompt\n- Emphasize topic consolidation to fit 4-call maximum",
          "is_bot": false,
          "headline": "chore(release): v1.0.8",
          "author_name": "Lincoln504",
          "author_login": "Lincoln504",
          "committed_at": "2026-07-17T15:03:43Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "00dba47d1ce9ad01236a94c68cb982fbc37acbe2",
          "body": null,
          "is_bot": true,
          "headline": "chore(ci): regenerate docs/deps.svg (detailed module graph) [skip ci]",
          "author_name": "github-actions[bot]",
          "author_login": "github-actions[bot]",
          "committed_at": "2026-07-17T14:55:59Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3559040d648cd7cf514b15cf2a22a457ddcbffc3",
          "body": "…olidation constraint\n\n- Add comprehensive CHANGELOG.md documenting all versions from 0.1.13 through 1.0.7\n- Include CHANGELOG.md in published package (docs/CHANGELOG.md)\n- Add 'Maximum 4 simultaneous calls' constraint to research-tool-usage prompt\n- Emphasize topic consolidation to fit 4-call maximum",
          "is_bot": false,
          "headline": "docs: add CHANGELOG to docs/, include in package, and add 4-call cons…",
          "author_name": "Lincoln504",
          "author_login": "Lincoln504",
          "committed_at": "2026-07-17T14:54:04Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "18b43cd1c104346379a87cf86e91196e486f1c95",
          "body": null,
          "is_bot": false,
          "headline": "chore(release): v1.0.7",
          "author_name": "Lincoln504",
          "author_login": "Lincoln504",
          "committed_at": "2026-07-14T21:39:00Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b36a55065be090102f9c9cd07bab3f9513d8d311",
          "body": "…xit-code misclassification, unsurfaced quality signals, SIGINT cancellation, citation-provenance gaps\n\nFindings from a live-log-verified reliability analysis\n(ISSUES-ANALYSIS-2026-07-09.md) plus a follow-up regression sweep, each\nverified in source and covered by new/updated tests:\n\n- Browser sched\n[…]\ny renderers,\n  cache-friendly dynamic tool loading) — none required for this release.\n\nFull verification: type-check, lint, and the full test suite (133 files /\n1938 tests) all green; npm audit clean.",
          "is_bot": false,
          "headline": "fix: browser-pool leader-election race, researcher retry-exemption, e…",
          "author_name": "Lincoln504",
          "author_login": "Lincoln504",
          "committed_at": "2026-07-14T21:38:20Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "e73f8eb78b10fd5b4f0eb939265eb46f8857ad94",
          "body": "…searcher tools)\n\nExpand the Research tools section into a Tool inventory covering both\nsurfaces: the three pi-registered tools (research,\nresearch_knowledge_search, health) and the seven researcher-agent\ntools, with the gathering-budget scope stated precisely (search /\nsecurity_search / stackexchange / youtube_transcript share\nMAX_GATHERING_CALLS; scrape and grep have their own budgets) and a\ncross-reference to PI_RESEARCH_DISABLED_TOOLS.",
          "is_bot": false,
          "headline": "docs(architecture): single canonical tool inventory (host-facing + re…",
          "author_name": "Lincoln504",
          "author_login": "Lincoln504",
          "committed_at": "2026-07-04T21:19:32Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "1464a96f0f67f4392adbb971ca4401cd4a4c3cd3",
          "body": "…6 audit\n\nComment-only: note the missing release concurrency group and the\ntag-pinned (non-SHA-pinned) actions in both workflows. No behavior\nchange.",
          "is_bot": false,
          "headline": "docs(ci): record deferred low-severity hardening TODOs from post-1.0.…",
          "author_name": "Lincoln504",
          "author_login": "Lincoln504",
          "committed_at": "2026-07-04T20:11:27Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7752bb15d30f70f0ce97f49f471aa7ad0cf50439",
          "body": null,
          "is_bot": false,
          "headline": "chore(release): v1.0.6",
          "author_name": "Lincoln504",
          "author_login": "Lincoln504",
          "committed_at": "2026-07-04T19:34:06Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "693fbe4961621817e90ad54834eab15eaf406082",
          "body": "…ribution\n\nThe agent skill can pass --depth 0 (only the pi extension tool and TUI\nare floor-limited to 1); and migration.ts holds only the strategy types —\nthe drop/backup/re-embed logic lives in store.ts.",
          "is_bot": false,
          "headline": "docs(architecture): correct depth-0 availability and migration.ts att…",
          "author_name": "Lincoln504",
          "author_login": "Lincoln504",
          "committed_at": "2026-07-04T19:13:47Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "945336e84eae5030be1e83258b465915e41cf995",
          "body": "…ctly\n\nA Proxy get trap may not substitute a wrapper for a non-writable\nnon-configurable own data property, so a frozen observer (a common\ndefensive pattern for SDK callback bags) made the engine throw TypeError\nat the property access itself — outside every guard, failing the run the\nwrapper exists \n[…]\no protect. Proxy a fresh empty target and close over the\nobserver instead: no own properties, no invariant can bind the trap.\nhas/getPrototypeOf forward so `in` checks and instanceof stay transparent.",
          "is_bot": false,
          "headline": "fix(orchestration): makeSafeObserver must not proxy the observer dire…",
          "author_name": "Lincoln504",
          "author_login": "Lincoln504",
          "committed_at": "2026-07-04T19:13:47Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "d36ab4fa5e1ffdc455f528515674a266e83b01d5",
          "body": null,
          "is_bot": false,
          "headline": "chore(release): v1.0.5",
          "author_name": "Lincoln504",
          "author_login": "Lincoln504",
          "committed_at": "2026-07-04T15:47:02Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0961d804af8e508a4b7796d2e0a111770bbb6ac7",
          "body": "…r transcribed links\n\nFinal adversarial-review pass on the v1.0.5 diff:\n- the two Content-Length pre-screen throws in scrapeWithFetch were the one\n  remaining unconsumed-body path in the function — and they fire on the\n  largest responses; cancel the body first (same class as the redirect/!ok\n  drains)\n- registerTranscribedLinks now refreshes the session's last-activity\n  timestamp, matching every sibling register function's TTL contract",
          "is_bot": false,
          "headline": "fix: drain bodies on Content-Length pre-screen throws; TTL refresh fo…",
          "author_name": "Lincoln504",
          "author_login": "Lincoln504",
          "committed_at": "2026-07-04T15:46:55Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b16027e4445ef6d37bea0c7770e845624d027262",
          "body": "…links\n\nLog-verified failure (Jul 4 run): a researcher grounded its report in a\nvideo transcript but cited it title-only; parseCitations extracts URLs, so\nthe citation was unparseable and the synthesis fallback rebuilt sources\nfrom the link pool — relabeling the transcript's watch URL '[Source:\nScra\n[…]\nllback labels those 'YouTube Transcript'\n- researcher prompt: do not scrape YouTube video links (app shell only) —\n  read them with youtube_transcript; channel/playlist discovery scrapes\n  remain fine",
          "is_bot": false,
          "headline": "fix(youtube): keep transcript provenance in the final report's cited …",
          "author_name": "Lincoln504",
          "author_login": "Lincoln504",
          "committed_at": "2026-07-04T15:38:26Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "cba58626918612df4316ca4d86635867224351c6",
          "body": "… --model preflight, streaming caps, socket drains, observer isolation\n\n- knowledge store: a failed 'backup' migration now aborts (old model kept,\n  next open retries) instead of escalating to a data-destroying 'drop';\n  countRows before backup is best-effort\n- deep orchestrator: a run with zero col\n[…]\ns+call guarded)\n  so throwing/rejecting SDK or TUI observer callbacks can never fail a run\n- SSRF comments corrected (WHATWG URL normalization covers numeric IP\n  encodings; pinned by regression test)",
          "is_bot": false,
          "headline": "fix: adversarial-review hardening — migration abort, hollow-run gate,…",
          "author_name": "Lincoln504",
          "author_login": "Lincoln504",
          "committed_at": "2026-07-04T15:34:36Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "83ea4568dec9e9f3f653a9196f88b69456ab8175",
          "body": "…correct error classification and minimal-model api ids\n\nFindings from an adversarial review, each verified in source:\n\n- A run that collects ZERO researcher reports now THROWS with the recorded\n  root causes instead of returning 'Research completed but no summary was\n  generated.' on the success pa\n[…]\nsts: orchestrator zero-report rejection (asserts the 429 cause text),\nSDK model-pin, provider-mismatch not-ready, and a new factory suite pinning\nthe api-id map against pi-ai's literal KnownApi union.",
          "is_bot": false,
          "headline": "fix: fail loud on zero-report runs; single-model runs under --model; …",
          "author_name": "Lincoln504",
          "author_login": "Lincoln504",
          "committed_at": "2026-07-04T13:57:40Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "827d116b6da66c6ccb05461f51a04d904879aa74",
          "body": null,
          "is_bot": false,
          "headline": "release: v1.0.4 — content-based pi credential detection",
          "author_name": "Lincoln504",
          "author_login": "Lincoln504",
          "committed_at": "2026-07-04T13:36:34Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "25532d1517e5a56d47af23d2e0a78e982043600c",
          "body": "…ence; registry no longer gated on auth.json\n\nTwo related defects around 'auth.json exists' being used as a proxy for\n'keys available':\n\n- model-registry-factory: with no explicit key, the registry was built from\n  pi's configuration ONLY when auth.json existed — a models.json-only setup\n  (per-prov\n[…]\ns.json-only keys (credentials → pi-config, ready) with\nprovider env keys stripped from the child env, since pi honors those too;\nthe existing model-required fixture now writes a real credential entry.",
          "is_bot": false,
          "headline": "fix(credentials): detect pi keys by pi's own semantics, not file pres…",
          "author_name": "Lincoln504",
          "author_login": "Lincoln504",
          "committed_at": "2026-07-04T13:36:34Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "04792f8319b1a54ddf08c8219b576fe13c8814ba",
          "body": "Replace 'pi auth (storage)' phrasing everywhere with pi's configuration,\nkeeping the literal file paths: the key comes from ~/.pi/agent/auth.json\nand custom models from ~/.pi/agent/models.json — both verified against\npi-coding-agent's own AuthStorage/ModelRegistry defaults. Printout labels\nare now uniform: 'pi config (keys)' / 'pi config (models)' in configBlock,\nthe CLI help (realigned), the launcher's guidance, and SKILL.md.",
          "is_bot": false,
          "headline": "docs,cli: pi has configuration files, not a named 'auth' feature",
          "author_name": "Lincoln504",
          "author_login": "Lincoln504",
          "committed_at": "2026-07-04T12:59:26Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d923f2ef217992fa440dcdd747d6d3a2473276a8",
          "body": "The sentence after the pi-extension install told extension users to\nconfigure a model and key — the extension needs neither (session model +\npi auth). Now stated per mode: extension works out of the box; standalone\nrequires PI_RESEARCH_MODEL, plus the API key only without pi. Drop the\n'(all optional)' qualifier from the CONFIGURATION API-keys heading — the\nLLM key is conditionally required and each row states its own condition.",
          "is_bot": false,
          "headline": "docs: mode-accurate install config note in the README",
          "author_name": "Lincoln504",
          "author_login": "Lincoln504",
          "committed_at": "2026-07-04T12:49:16Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3587ea269c334681144e616708e9e34278179552",
          "body": "Verified end-to-end: the CLI credential bridge promotes PI_RESEARCH_API_KEY\n(and PROVIDER) from config.env/cli.env, with the provider inferred from a\nprovider/model-id PI_RESEARCH_MODEL. Worded per mode: the programmatic SDK\ntakes the apiKey option / env var / pi auth (no file bridge there).",
          "is_bot": false,
          "headline": "docs: note the API key can live in config.env for the CLI/skill",
          "author_name": "Lincoln504",
          "author_login": "Lincoln504",
          "committed_at": "2026-07-04T12:46:26Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "af9daa0f61ab7adec97f7dab62a7636fc8eec2c4",
          "body": "Document the model requirement once, clearly, in each obvious place: the\nAGENT-SKILL install section (including the pi-extension shortcut, which\nnow says the model step still applies), SDK.md install + options table,\nthe CONFIGURATION.md PI_RESEARCH_MODEL row, the skill's SKILL.md\nconfig block and b\n[…]\nites, and\nthe .env.example comment. All state the same fact: the standalone\nCLI / agent skill / SDK run on the configured PI_RESEARCH_MODEL and never\nfollow the model selected inside the pi extension.",
          "is_bot": false,
          "headline": "release: v1.0.3 — configured-model requirement, docs",
          "author_name": "Lincoln504",
          "author_login": "Lincoln504",
          "committed_at": "2026-07-04T12:42:03Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "15f33b408a12f3291567b393d3b374ba7b352571",
          "body": "…LI/skill; align the SDK session model with RESEARCH_MODEL\n\nThe standalone CLI / agent skill now run only on an explicitly configured\nmodel and never follow the model selected inside the pi extension:\n\n- cli: with pi credentials (auth.json) but no PI_RESEARCH_MODEL, research\n  and knowledge fail fas\n[…]\n/ the install-time note in both\noutput forms; SDK seeding pinned via the registry lookup; object\npass-through pinned against a decoy registry so the old fallback path\ncannot coincidentally satisfy it.",
          "is_bot": false,
          "headline": "fix(model-resolution): require a configured model on the standalone C…",
          "author_name": "Lincoln504",
          "author_login": "Lincoln504",
          "committed_at": "2026-07-04T12:42:03Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "e90474b36464ecddac3ac4fc19ed9eeb85355e64",
          "body": "…onversion fallback\n\nThe third-party list now presents html-to-markdown as the converter with\nnode-html-markdown noted only as the pure-JS fallback, per maintainer\ndirection — one brief mention in the architecture doc.",
          "is_bot": false,
          "headline": "release: v1.0.2 — timeout robustness fix; de-emphasize the markdown-c…",
          "author_name": "Lincoln504",
          "author_login": "Lincoln504",
          "committed_at": "2026-07-04T11:29:58Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b4cfcc40256bb74e44b4e10ad412f21dabb79292",
          "body": "…n.abort() hangs\n\nRoot-caused from a live stall: with the provider account quota-exhausted\n(GLM 1308 'usage limit reached', HTTP 429), a researcher sat 26+ minutes\npast its 15-minute PI_RESEARCH_TIMEOUT_MS with no timeout ever firing.\nThe timeout's rejection was gated on session.abort() SETTLING\n(.f\n[…]\np await on\nabort() is bounded by a 10s grace so retries cannot hang there either.\nRegression test: prompt AND abort never settle → runResearcher still\nrejects with the timeout error under fake timers.",
          "is_bot": false,
          "headline": "fix(orchestration): make the researcher timeout fire even when sessio…",
          "author_name": "Lincoln504",
          "author_login": "Lincoln504",
          "committed_at": "2026-07-04T11:29:58Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "6cf9c57a41038f1ae3acc3a609ea73ed7c156959",
          "body": "… the entry points are esbuild-bundled; html-to-markdown repo moved\n\n- THIRD-PARTY-NOTICES called camoufox-js a transitive dependency in the\n  ua-parser-js override rationale; it is a direct dependency (ua-parser-js\n  is the transitive one).\n- 'dist/* is built with esbuild --packages=external' overs\n[…]\nLicensing conclusion\n  unchanged.\n- ARCHITECTURE linked html-to-markdown at its pre-org-move URL; the\n  installed @kreuzberg/html-to-markdown-node declares\n  github.com/kreuzberg-dev/html-to-markdown.",
          "is_bot": false,
          "headline": "docs: dependency-notice precision — camoufox-js is a direct dep; only…",
          "author_name": "Lincoln504",
          "author_login": "Lincoln504",
          "committed_at": "2026-07-04T11:03:52Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "f07288de840aab83556abbdb85ef881788b5d919",
          "body": "…-doc gate polling\n\nThe three bare transport patterns (throttle_violation, too many requests,\nrate limit) could classify a healthy result as an environment failure — a\nsecurity advisory body that merely says \"rate limit\" would silently skip\nthe test. Anchored to the shapes the clients actually emit:\n[…]\n status that fell into the generic waiting branch. Capture via\n'if !' and substitute '{}' so the poll logs the honest missing-run line.\nBoth paths exercised locally under bash -e against the live API.",
          "is_bot": false,
          "headline": "test(integration),ci(release): anchor throttle classification; single…",
          "author_name": "Lincoln504",
          "author_login": "Lincoln504",
          "committed_at": "2026-07-04T10:51:45Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "86924d6563957a4b00693ebbfad487b71ab48340",
          "body": "- AGENT-SKILL: the engine box in the flow diagram is the CLI entry\n  (dist/cli.mjs), not the SDK (which has no transpiled dist).\n- CONFIGURATION: PI_RESEARCH_MODEL also selects the session model on the\n  standalone CLI/SDK when no --model/model option is given — the table row\n  previously described \n[…]\nw one line plus a pointer\n  to the canonical doc.\n- README: drop the launcher-internal parenthetical about which dependency\n  the launcher probes — the launcher prints that guidance itself at runtime.",
          "is_bot": false,
          "headline": "docs: pre-1.0.1 audit trims — accuracy fixes and dedup, no new content",
          "author_name": "Lincoln504",
          "author_login": "Lincoln504",
          "committed_at": "2026-07-04T10:42:22Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "652c1a99b5aff8dd5a72fb9abf7c9b3c2b1d7ed4",
          "body": "…uTube live-skip\n\nfix(cli): wrap uninstallSkill in the same try/catch as install, so an\ninstaller throw (e.g. unwritable ~/.pi manifest) keeps the --json output\ncontract via reportError instead of leaking a plain-text fatal to stderr.\nExit code was already correctly nonzero on that path.\n\nci: set PI\n[…]\nPoToken fetches actually ran in CI and passed via the tolerant\nfailure branch (a latent hang-flake source). Now behavior matches the\ndocumented contract; the other seven parallel files are unaffected.",
          "is_bot": false,
          "headline": "fix: v1.0.1 audit follow-ups — skill-uninstall --json contract, CI Yo…",
          "author_name": "Lincoln504",
          "author_login": "Lincoln504",
          "committed_at": "2026-07-04T10:31:34Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "1afa2194130c2433770306fc91c7acee71f76c60",
          "body": "…e, CI-gated release\n\nfeat(cli): add a `skill` command (install | uninstall | status) that links the\nbundled agent skill into the coding agents on this machine (Claude, Codex,\nOpenClaw). It's the standalone-CLI equivalent of the pi extension's\n`/research-config → Install in External Agents`, for use\n[…]\n a hermetic install→status→uninstall subprocess\nround-trip against an isolated HOME). Full suite 1893 green; type-check, lint,\ndeps:check, prod audit (0 vulns), tarball manifest (222 files) all clean.",
          "is_bot": false,
          "headline": "release: v1.0.1 — CLI skill install/uninstall, install-doc restructur…",
          "author_name": "Lincoln504",
          "author_login": "Lincoln504",
          "committed_at": "2026-07-04T10:20:16Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "75a9ec7c071b78fecc8bdcdcb0d77021a918268a",
          "body": "…m safety\n\nMatch the registry chmod posture introduced in the previous commit (83a4cfa4):\non Windows, chmodSync only toggles the read-only attribute and a throw on\nan exotic filesystem must not fail a saveConfig whose data is already\ndurably written (the atomic writeFileSync + rename have already co\n[…]\nod at line 373 was already guarded; this existing config.env\nchmodSync at line 878 (hardened in f57c889b) was not. Wrapping it means\nboth save-paths now treat the permission-tightening as best-effort.",
          "is_bot": false,
          "headline": "fix(config): wrap config.env chmodSync in try/catch for cross-platfor…",
          "author_name": "Lincoln504",
          "author_login": "Lincoln504",
          "committed_at": "2026-07-04T09:23:20Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "83a4cfa4749746c50d5d2ad30448d8b7d90af3b6",
          "body": "Consistency gap surfaced in the f57c889b audit: the user-scope config.env\nis written 0o600 in a 0o700 dir (hardened because it may hold API keys),\nbut the LOCAL-scope project-settings.json and BOTH lock files were written\numask-default (~0644), sitting in the same owner-only state dir.\n\nThe registry\n[…]\ne).\n\n- config.ts: registry temp write { encoding, mode: 0o600 } + chmodSync\n  after rename; both lock opens (registry + config.env) now 0o600.\n- config.test.ts: assert the hardened write + lock opens.",
          "is_bot": false,
          "headline": "fix(config): write the project-settings registry + locks mode 0o600",
          "author_name": "Lincoln504",
          "author_login": "Lincoln504",
          "committed_at": "2026-07-04T09:08:40Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "ed2d9fd6f25296d8af37b540a5e0a332053646ee",
          "body": "Resolve two user-facing naming inconsistencies surfaced in the pre-release\nsweep.\n\n1. The component health operation was called \"Health Check\" (the tool label,\n   the healthcheck/ module, HEALTH_CHECK_TIMEOUT_MS, most docs) but \"Run\n   Diagnostics\" in the /research-config TUI. \"Diagnostics\" now refe\n[…]\nATION, KNOWLEDGE-STORE); index.test.ts mock string.\n\n\"database\" is retained where it is technically accurate (the LanceDB vector\ndatabase instance, NVD/OSV security databases, \"is a vector database\").",
          "is_bot": false,
          "headline": "refactor: unify naming — \"Health Check\" and \"knowledge store\" everywhere",
          "author_name": "Lincoln504",
          "author_login": "Lincoln504",
          "committed_at": "2026-07-04T07:52:15Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "46d5e497424be83ed4752b60bd806b2a663cc29c",
          "body": "Final hardening from the pre-release audit.\n\nRelease pipeline (release-blocking):\n- release.yml: drop `registry-url` from the publish job's setup-node step.\n  npm OIDC Trusted Publishing authenticates via the GitHub OIDC token and\n  only takes that path when it finds NO other auth; setup-node's regi\n[…]\n\nTests:\n- deep-research-orchestrator: regression tests for the throwing-observer\n  contract (verified to fail on the reverted code).\n- text-utils: regression tests for balance-aware bracket stripping.",
          "is_bot": false,
          "headline": "fix: pre-1.0.0 audit fixes — release pipeline, crash-safety, citations",
          "author_name": "Lincoln504",
          "author_login": "Lincoln504",
          "committed_at": "2026-07-04T07:51:49Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "c73e6cf37c604cc661b3556fb22e984851cd5bd2",
          "body": "…release-pipeline hardening\n\nApplies the pre-release audit findings for the v1.0.0 hardening sweep (f57c889b)\nthat were left uncommitted, plus regression tests for the crash-safety/security\nfixes and release-pipeline hardening.\n\nProduction fixes (audit-driven):\n- file-lock-service: rename-to-trash +\n[…]\npublishing).\n- cvss.ts: fix misleading docstring — cite the full changed-scope vector\n  (AV:P/AC:H/PR:H/UI:N/S:C/C:H/I:H/A:H -> 6.9/MEDIUM); the shorthand\n  S:C/C:H/I:H/A:H alone scores 10.0/CRITICAL.",
          "is_bot": false,
          "headline": "fix: finish pre-1.0.0 hardening — audit findings, regression guards, …",
          "author_name": "Lincoln504",
          "author_login": "Lincoln504",
          "committed_at": "2026-07-04T03:31:57Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "54887bdddcc9ab8948f30a3f7d59008b085d4a54",
          "body": null,
          "is_bot": true,
          "headline": "chore(ci): regenerate docs/deps.svg (detailed module graph) [skip ci]",
          "author_name": "github-actions[bot]",
          "author_login": "github-actions[bot]",
          "committed_at": "2026-07-04T02:16:22Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f57c889b6e7b2e05d49a60822b5b99112b0c9d99",
          "body": "…ring, tests, docs\n\nSecurity/network:\n- Browser subresource SSRF closed: DNS-aware request validation with a\n  per-worker verdict cache, plus a response-side serverAddr rebinding\n  backstop that poisons the scrape (benign-classified, page closed)\n- ~/.pi/research/config.env written 0600 in a 0700 di\n[…]\nrs, THIRD-PARTY-NOTICES link)\n- Prompt fixes: frontmatter leak removed, budget/tool wording matches\n  reality; removed the dead mock-factory helper, orphaned stress scripts,\n  and stale ignore entries",
          "is_bot": false,
          "headline": "fix: pre-1.0.0 hardening sweep — security, crash-safety, config, stee…",
          "author_name": "Lincoln504",
          "author_login": "Lincoln504",
          "committed_at": "2026-07-04T02:14:57Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "b570fd1168ed40f2a381334a13c4d3f12c3f1f7c",
          "body": "… and flake-free\n\nSame class of defect the severity test had, across the Security Search block:\n\n- Weak assertions: several tests asserted only expect(text.length).toBeGreaterThan(50)\n  or expect(text).toContain('<term>') — but the tool's FAILURE body (\"Security\n  Vulnerability Search Failed\") echoe\n[…]\nithub'] so it's actually tested.\n\nError-handling tests (empty terms, invalid db, special chars) and the Stack Exchange /\nGrep blocks are unchanged. Verified locally against the live APIs: all 31 pass.",
          "is_bot": false,
          "headline": "test(security): make the Security Search integration tests meaningful…",
          "author_name": "Lincoln504",
          "author_login": "Lincoln504",
          "committed_at": "2026-07-04T01:12:32Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "3f5a93ae2392f37df777299881bc2b414bc5d14b",
          "body": "…rams\n\nThe strengthened assertion in eceef524 exposed a pre-existing bug this test had\nalways masked with a vacuous toBeDefined(): it passed `severity: ['HIGH','CRITICAL']`\n(the schema takes a single string, security.ts:28) and `databases: ['cisa']` (the\nkey is 'cisa_kev'), so the tool returned \"Inv\n[…]\nactually runs a CISA KEV severity-filtered search\nand asserts the real \"Security Vulnerability Search Results\" report. Verified locally\n(passes against the live CISA API; skips visibly on rate-limit).",
          "is_bot": false,
          "headline": "test(security): fix the severity-filter integration test's invalid pa…",
          "author_name": "Lincoln504",
          "author_login": "Lincoln504",
          "committed_at": "2026-07-04T01:06:20Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "eceef5249ca4d4ad5287a4632df4e60da4f49e69",
          "body": "…rage\n\nFrom the test-quality audit — make tests fail when the behavior regresses:\n\n- tools-extended.test.ts: convert every `if (isNetworkUnavailable(text)) return;`\n  to `return ctx.skip()` so a rate-limited CI run is VISIBLY skipped, not silently\n  passed; strengthen the vacuous severity assertion \n[…]\n, 169.254 metadata, IPv6 private, mixed public+private\n  (fail-closed), a public-only pass, and that the loopback flag doesn't relax it.\n\nTest-only; no production source changed. 1777 unit tests pass.",
          "is_bot": false,
          "headline": "test: close false-greens and add the untested SSRF DNS-rebinding cove…",
          "author_name": "Lincoln504",
          "author_login": "Lincoln504",
          "committed_at": "2026-07-04T00:56:36Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "650c07ee64d68d18cf5b6fc23ffd685faacbd2d9",
          "body": "…th; tolerance + probe-doc refinements\n\nFrom the adversarial review of the health/probe changes:\n\n- A1 (health idle path): a store DISABLED for reason 'mode' (Knowledge Mode was\n  none — revivable) was mislabeled \"native embedding/vector stack unavailable on\n  this platform\" on a perfectly capable h\n[…]\nrror patterns to the shapes the\n  tools actually emit (\"HTTP 429 from …\", \"HTTP 429: …\", \"(HTTP 503)\") so a vuln\n  description that merely mentions an HTTP status in its body is not falsely tolerated.",
          "is_bot": false,
          "headline": "fix(health,knowledge): accurate DISABLED reason in the idle health pa…",
          "author_name": "Lincoln504",
          "author_login": "Lincoln504",
          "committed_at": "2026-07-04T00:46:13Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "da7987d3a55d60a4fb54e8f578129006f6fba8b9",
          "body": "…er hang init)\n\nThe out-of-process probe loads the model on the WebGPU EP to test a real compute.\nOn a first-ever run the model isn't cached, so the probe would DOWNLOAD it — and\non a GPU-less host that load can hang for minutes. With the health check no longer\nwarming the embedder early (f466b458),\n[…]\napable host uses CPU embeddings on its very first run and switches\nto WebGPU from the second (once the model is cached) — negligible, and it avoids the\nprior duplicate model download inside the probe.",
          "is_bot": false,
          "headline": "fix(knowledge): defer the WebGPU probe until the model is cached (nev…",
          "author_name": "Lincoln504",
          "author_login": "Lincoln504",
          "committed_at": "2026-07-04T00:25:39Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "b9920103acb5a267e495ffd559f829cc238d1f05",
          "body": "…ers)\n\nGitHub runners have no real GPU, so the default EMBEDDING_DEVICE=auto runs the\nout-of-process WebGPU viability probe, which on a GPU-less host loads the model\non the Dawn/WebGPU EP and then either crashes (software Vulkan) or hangs — and\nthat probe can only ever fall back to CPU anyway. It wa\n[…]\nntless probe, no stall, no hang. No integration test asserts a\nwebgpu device. The real WebGPU path stays covered by the mocked\nwebgpu-viability unit tests. Real-user auto/webgpu behavior is unchanged.",
          "is_bot": false,
          "headline": "ci: force EMBEDDING_DEVICE=cpu in the integration jobs (GPU-less runn…",
          "author_name": "Lincoln504",
          "author_login": "Lincoln504",
          "committed_at": "2026-07-04T00:20:04Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "1492d2bdc35917c89ca9585b70450e139266b3c8",
          "body": null,
          "is_bot": true,
          "headline": "chore(ci): regenerate docs/deps.svg (detailed module graph) [skip ci]",
          "author_name": "github-actions[bot]",
          "author_login": "github-actions[bot]",
          "committed_at": "2026-07-03T23:55:15Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f466b45836381294d84d2afffd45e73cec7264a5",
          "body": "…ake the WebGPU probe one-time & fast-fail\n\nRoot cause of the ~45s (×N) ubuntu-CI integration stall: a non-forced\nKnowledgeStore health check resolved the store via getService(), which lazily\nran the LanceDB open + ONNX model load + out-of-process WebGPU probe. On a\nGPU-less runner the probe didn't \n[…]\nrance helper treat upstream HTTP 429/503\nthrottling as an environment condition (like the existing rate-limit patterns),\nfixing the intermittent Stack Exchange / security-tool flakes on shared CI IPs.",
          "is_bot": false,
          "headline": "fix(health,knowledge): stop the health check forcing embedder init; m…",
          "author_name": "Lincoln504",
          "author_login": "Lincoln504",
          "committed_at": "2026-07-03T23:53:54Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "ed726d84c79d4fa48381614047a9811ce883bd10",
          "body": "…cleanup\n\nRelease gate:\n- release.yml publish job now mirrors current CI's fast blocking checks:\n  production-dep audit (--omit=dev --audit-level=moderate), deps:check\n  architecture rules, and ripgrep parity. Adds a note that the cross-OS\n  unit/integration matrix in ci.yml gates main before a rele\n[…]\np redundant `export` on 10 file-local-only symbols.\n- constants.ts: correct gathering-budget comment (add youtube_transcript).\n- .env.example: show DEBUG default (false) per the file's own convention.",
          "is_bot": false,
          "headline": "chore(release): pre-1.0.0 polish — align release gate with CI, docs, …",
          "author_name": "Lincoln504",
          "author_login": "Lincoln504",
          "committed_at": "2026-07-03T21:47:54Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "a89d129da160b00f5285b7941ca001284c5366d7",
          "body": "Signed-off-by: Lincoln <56658553+Lincoln504@users.noreply.github.com>",
          "is_bot": false,
          "headline": "Fix formatting in README for search depth levels",
          "author_name": "Lincoln",
          "author_login": "Lincoln504",
          "committed_at": "2026-07-03T21:38:24Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0d035e874b3e4885b2211746d7d61f8d36ef5b45",
          "body": "Corrected grammatical errors in the README content.\n\nSigned-off-by: Lincoln <56658553+Lincoln504@users.noreply.github.com>",
          "is_bot": false,
          "headline": "Fix grammar in research description in README",
          "author_name": "Lincoln",
          "author_login": "Lincoln504",
          "committed_at": "2026-07-03T21:36:50Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0aefbd412d30eb349d8dbe13613fecf508d4a74b",
          "body": "…ounded writer drain\n\nThe knowledge store was freshness-blind at read time: rebuildDocument served\ncached scrapes (and knowledge-search reference docs) up to the eviction TTL\nwith the row's age discarded, so time-sensitive queries could land stale\ncontent as authoritative. Now:\n- rebuildDocument com\n[…]\nsession-deduped, so free cache batches would allow an unbounded re-submit\nloop), and the knowledge-store re-scope singleton (not reachable concurrently\nin the shipped CLI/SDK/extension process model).",
          "is_bot": false,
          "headline": "fix(knowledge,tools): read-time cache freshness, grep budget split, b…",
          "author_name": "Lincoln504",
          "author_login": "Lincoln504",
          "committed_at": "2026-07-03T20:24:47Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "ed1d059070f8ec54bb4850eade08b7249601ed70",
          "body": "Updated wording from 'high quantity pool of sources' to 'high volume sources'.\n\nSigned-off-by: Lincoln <56658553+Lincoln504@users.noreply.github.com>",
          "is_bot": false,
          "headline": "Fix wording in research description",
          "author_name": "Lincoln",
          "author_login": "Lincoln504",
          "committed_at": "2026-07-03T20:03:50Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "71df6c6042657c0cf229695532a645957137a45b",
          "body": "Signed-off-by: Lincoln <56658553+Lincoln504@users.noreply.github.com>",
          "is_bot": false,
          "headline": "Remove markdown link from README description",
          "author_name": "Lincoln",
          "author_login": "Lincoln504",
          "committed_at": "2026-07-03T20:03:19Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f859e853bff073a3c582e78cdbdde62434a7b04f",
          "body": "Updated README to include a link to the pi project and improved clarity in the research process description.\n\nSigned-off-by: Lincoln <56658553+Lincoln504@users.noreply.github.com>",
          "is_bot": false,
          "headline": "Enhance README with pi link and clarify research process",
          "author_name": "Lincoln",
          "author_login": "Lincoln504",
          "committed_at": "2026-07-03T20:01:55Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f2a967e149ce4447b4bb5b33d84ae905b4e9271c",
          "body": "The SIGINT/SIGTERM handler called process.exit() directly, bypassing the flushAndExit drain\nthe normal exit path uses — so buffered stdout (e.g. --json into a pipe) could truncate when\na signal arrived mid-write. Hoist flushAndExit to module scope and use it from the signal\nhandler too. (The exit CODE on clean Ctrl-C is left as-is: changing 70→130/143 is a\ndocumented user-facing contract change, not a mechanical fix.)",
          "is_bot": false,
          "headline": "fix(cli): drain stdout/stderr on a signal-triggered exit",
          "author_name": "Lincoln504",
          "author_login": "Lincoln504",
          "committed_at": "2026-07-03T18:36:41Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "dff9f8a15e1dd44480b6746928b01522e65d9ecb",
          "body": "…uit-breaker map\n\n- nvd-client: the per-request page size was hard-capped at 20 (Math.min(20, maxResults))\n  while MAX_RESULTS_PER_PAGE (2000, NVD 2.0's ceiling) only bounded the caller-facing\n  maxResults — so a request for >20×maxPages results silently truncated. Scale pageSize to\n  min(MAX_RESULT\n[…]\nreakers with oldest-entry eviction (mirrors\n  error-tracker's MAX_PATTERNS) so a cleanup path that ever skips clearSessionCircuitBreaker\n  can't grow the map unboundedly over a long-lived TUI process.",
          "is_bot": false,
          "headline": "fix(security,browser): scale NVD page size and bound the session circ…",
          "author_name": "Lincoln504",
          "author_login": "Lincoln504",
          "committed_at": "2026-07-03T18:36:41Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "5cbf106ac52fb8c870a4a39aaf969974f2be6d4d",
          "body": "…sing non-JSON bodies\n\n- The circuit breaker wrapped only per-video fetchOne, leaving the once-per-batch seed\n  session + PoToken mint — the steps most prone to a systemic BotGuard/attestation outage —\n  uncovered, so every batch paid the full timeout on each during an outage. Route both\n  through t\n[…]\nurned '', so the caller reported\n  \"bot-protection rejected the token\" for ANY non-JSON body (HTML interstitial, shape\n  change). Log a short snippet on parse failure so the real cause is diagnosable.",
          "is_bot": false,
          "headline": "fix(youtube): fail-fast the seed/mint under outage and stop misdiagno…",
          "author_name": "Lincoln504",
          "author_login": "Lincoln504",
          "committed_at": "2026-07-03T18:36:41Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "3ebe3c5971006e71de912ff6131e2dfa152b22f1",
          "body": null,
          "is_bot": true,
          "headline": "chore(ci): regenerate docs/deps.svg (detailed module graph) [skip ci]",
          "author_name": "github-actions[bot]",
          "author_login": "github-actions[bot]",
          "committed_at": "2026-07-03T18:23:50Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c5b1417de4a3c3551b2278d1010311f6cc219c1f",
          "body": "…ll, tighten typescript\n\n- docs/SDK.md: the documented plain-Node recipe (`--experimental-strip-types`, \"default\n  from 23.6+\") throws ERR_UNSUPPORTED_TYPESCRIPT_SYNTAX — the source uses `enum` and\n  constructor parameter properties, which strip-only mode rejects. Document\n  `--experimental-transfor\n[…]\n only the built run.mjs is executed.\n- package.json: tighten the typescript devDependency to `>=6.0.3 <6.1.0` so a future 6.1\n  can't float past @typescript-eslint's peer ceiling and break the linter.",
          "is_bot": false,
          "headline": "chore(packaging,docs): correct the SDK runtime recipe, trim the tarba…",
          "author_name": "Lincoln504",
          "author_login": "Lincoln504",
          "committed_at": "2026-07-03T18:22:08Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "8be624c40c86e555b25ea483e5977ebfa069b7c7",
          "body": "…gent audit\n\n- youtube: the transcript circuit breaker matched 'timeout' but withTimeout() rejects with\n  \"...timed out\" (no contiguous \"timeout\"), so genuine hangs never counted toward the\n  breaker and every researcher paid the full timeout during an outage. Match 'timed out'.\n- github-advisories:\n[…]\nlike the query already\n  is — they are templated verbatim into the researcher's trusted-seed evidence block. Also\n  document --config for status/knowledge-config and the knowledge 5-query cap in help.",
          "is_bot": false,
          "headline": "fix(security,youtube,cli,extension): release-hardening from a multi-a…",
          "author_name": "Lincoln504",
          "author_login": "Lincoln504",
          "committed_at": "2026-07-03T18:22:08Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "adeb82578a811fcb933ff255a5a505739e6acf80",
          "body": "…bedder reconnect-clear\n\n- exportForWeb is reachable from the public SDK (exportKnowledge) at any time but was the\n  one read left outside trackOperation — a concurrent close() could free the native handle\n  mid-query. Wrap it like the sibling reads.\n- reconnectFactory did not await clearEmbeddingIn\n[…]\nng its dispose(). Without the await, getEmbedder() (for unchanged\n  config) returned the same still-disposing instance — so a leader-handoff reconnect handed\n  back the very embedder it was replacing.",
          "is_bot": false,
          "headline": "fix(knowledge): close the exportForWeb teardown race and await the em…",
          "author_name": "Lincoln504",
          "author_login": "Lincoln504",
          "committed_at": "2026-07-03T18:22:08Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "5748deaadb4a6f4094ceb716d776e4088bbed979",
          "body": "…ning batch\n\nAdversarial self-review of the just-pushed fixes surfaced three of my own regressions:\n- sdk.ts: `_isRunning` was set before the try, but the `await getService()` between them\n  can throw (container-disposal race / unregistered service). On that throw the flag never\n  reset and, since n\n[…]\n the other count knobs.\n- stackexchange: the new maxPages cap used Math.max(1, ...), which changed the meaning of\n  maxPages=0/negative (previously \"no pages\") to \"one page\". Cap only the upper bound.",
          "is_bot": false,
          "headline": "fix(sdk,config,stackexchange): repair edge cases from the prior harde…",
          "author_name": "Lincoln504",
          "author_login": "Lincoln504",
          "committed_at": "2026-07-03T18:22:08Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "1aba2e88347295fec0821e9f11cdfaa8eff41653",
          "body": null,
          "is_bot": true,
          "headline": "chore(ci): regenerate docs/deps.svg (detailed module graph) [skip ci]",
          "author_name": "github-actions[bot]",
          "author_login": "github-actions[bot]",
          "committed_at": "2026-07-03T17:27:50Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a3164c71124c176ecd90f93b49b3559d84965b1a",
          "body": "statusMessage was written in 12 observer paths and read nowhere — the header already\nrenders panel.title and each phase shows via per-slice status, so it was pure dead stores.\nRemove the field and all writes (behavior-neutral), and drop the now-obsolete test that\nasserted the dead field was not rendered.",
          "is_bot": false,
          "headline": "refactor(tui): remove the dead statusMessage panel field",
          "author_name": "Lincoln504",
          "author_login": "Lincoln504",
          "committed_at": "2026-07-03T17:26:21Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "35c41b9aebffeac50412e63f003445720b0de8b6",
          "body": "…signals, bound inputs and metric labels\n\n- osv-types: guard range.events (upstream validates only the vuln id) — an unguarded\n  events.find() threw a TypeError that failed the whole term in Promise.allSettled and\n  discarded all its vulns.\n- web-scraper + stackexchange: honor an already-aborted sig\n[…]\niling garbage like '10abc')\n  and add an integer flag applied to the count knobs (worker threads/concurrency, researcher\n  and scrape counts) so a fractional value can't reach poolifier / loop bounds.",
          "is_bot": false,
          "headline": "fix(security,config,resilience): guard OSV events, honor pre-aborted …",
          "author_name": "Lincoln504",
          "author_login": "Lincoln504",
          "committed_at": "2026-07-03T17:26:21Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "ae539ff9c85359cd434264ea03feb3a0e45ff54d",
          "body": "…tion, HTTP embed guard, Windows write false-failure\n\n- process-lifecycle isProcessAlive: compare start times with ±1s tolerance. The macOS/BSD\n  fallback derives start time as floor(Date.now()/1000) - `ps etimes`; both terms are\n  independently quantized, so the same process reads 1s apart and a st\n[…]\n temp unlink best-effort.\n  copyFile already persisted the state; an AV-locked temp unlink was falling through to the\n  catch and reporting \"Failed to write state\" for a write that actually succeeded.",
          "is_bot": false,
          "headline": "fix(infra): tolerate start-time jitter, fix stdio-capture flag corrup…",
          "author_name": "Lincoln504",
          "author_login": "Lincoln504",
          "committed_at": "2026-07-03T17:26:21Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "a24b302333300be2603504f4093ae2a4c327db55",
          "body": "…t, no teardown-noise errors, close a listener leak\n\n- Thread the task-timeout AbortController's signal into executeScrapeTask and close the\n  page on abort. page.setDefaultTimeout only bounds Playwright's action/nav verbs, NOT\n  Response reads: a large/slow PDF's response.body() (or a slowloris tri\n[…]\ndown() could no longer clear it.\n- browser-client: remove the outer-signal abort listener on the timeout path too, else a\n  shared long-lived run signal accumulates one listener per timed-out request.",
          "is_bot": false,
          "headline": "fix(browser): free worker slot on stuck scrape, single-shot pool rese…",
          "author_name": "Lincoln504",
          "author_login": "Lincoln504",
          "committed_at": "2026-07-03T17:26:21Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "df1b89dad68e4fb76a1c99c971219f88187f0ef0",
          "body": "…on state, always fire a terminal callback\n\n- runDeepResearch: the _lastSessionId/_lastResearchId/_lastRunSummary module singletons\n  are last-writer-wins, so two overlapping runs on one SDK instance silently corrupted\n  each other's reported session/metrics/reports. Concurrent runs are documented-u\n[…]\nired onStart but no terminal\n  callback, leaving the TUI/headless quick slice stuck \"in progress\". Add an outer catch\n  that fires onError exactly once (guarded so the inner catch isn't double-fired).",
          "is_bot": false,
          "headline": "fix(sdk,orchestration): guard concurrent SDK runs, free per-run sessi…",
          "author_name": "Lincoln504",
          "author_login": "Lincoln504",
          "committed_at": "2026-07-03T17:26:21Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "66628369e69df6d9403f030e776a12d043487ea3",
          "body": "parseCitations stripped a trailing ')' blindly, running BEFORE normalizeUrl — so a\ncitation to a balanced-paren URL (e.g. Wikipedia's ..._(programming_language)) lost its\nclosing paren and shipped as a broken 404 in the CITED LINKS section, defeating the\nbalance-aware fix that only lived in normaliz\n[…]\n Export and reuse\nstripTrailingLlmPunctuation so both paths handle trailing punctuation identically\n(strip an unbalanced ')', keep a balanced one; preserve unreserved '_'/'~'). Adds a\nregression test.",
          "is_bot": false,
          "headline": "fix(citations): preserve balanced-paren URLs in parseCitations",
          "author_name": "Lincoln504",
          "author_login": "Lincoln504",
          "committed_at": "2026-07-03T17:26:21Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "44dfde4c4d13cb096b8eaf16f7edda7c05371124",
          "body": "…heck, close-coord reads, revive ORT net\n\n- addDocuments: the version-mismatch retry refreshed the table handle but discarded\n  it, re-running every attempt against the same version-pinned snapshot — under\n  concurrent cross-process writes all retries re-conflicted and the batch was silently\n  dropp\n[…]\n\n- Embedder: re-register the global ref on the idle→active revive so the beforeExit ORT\n  teardown net survives an idle dispose; WeakSet-guard the shutdown task so re-registration\n  leaks no callback.",
          "is_bot": false,
          "headline": "fix(knowledge): stop concurrent-write doc loss, race-free FTS stale c…",
          "author_name": "Lincoln504",
          "author_login": "Lincoln504",
          "committed_at": "2026-07-03T17:26:21Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "a68603b682a52e6c3aa5f577705fe4c0627f994b",
          "body": null,
          "is_bot": true,
          "headline": "chore(ci): regenerate docs/deps.svg (detailed module graph) [skip ci]",
          "author_name": "github-actions[bot]",
          "author_login": "github-actions[bot]",
          "committed_at": "2026-07-03T08:07:47Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a8ba40afd00bdc333bcde4037e0ee6fc278ecd42",
          "body": "… docstring\n\nThree small correctness fixes:\n\n- Query XSS heuristic. The event-handler pattern was boundary-anchored to (^|[\\s\"'<]) to\n  avoid false positives like \"pokemon2=\", but the class omitted '/', so tag-internal\n  slash-delimited handlers (<svg/onload=, <img/onerror=) passed. Switch to a nega\n[…]\ny, and the code correctly uses one unified formula). Rewrite the\n  header to match the accurate inline comment. No runtime change.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix: XSS heuristic slash-handler gap, scrape-failure undercount, CVSS…",
          "author_name": "Lincoln504",
          "author_login": "Lincoln504",
          "committed_at": "2026-07-03T08:05:17Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "efcc99111af8a2a32529a5a24833e33d8e4252c6",
          "body": "…e; store ops vs close)\n\nTwo latent teardown races (not currently reachable on a supported path, but fragile):\n\n- ServiceContainer.reset() awaited an in-flight disposal once, then called disposeAll()\n  again. If a fresh, non-reentrant disposeAll() (P2) started in the microtask gap, reset's\n  own dis\n[…]\nUrlAndType, and clear through trackOperation so close() awaits them\n  and they skip cleanly (neutral value) once isClosing is set.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(core,knowledge): harden teardown races (container reset vs dispos…",
          "author_name": "Lincoln504",
          "author_login": "Lincoln504",
          "committed_at": "2026-07-03T08:05:07Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "5ede30fed629f26ed8e2e6282c92c8e4f119b28a",
          "body": "The CITED LINKS block splitter used `\\d+\\.` to match an ordered-list marker but was not\nanchored to line start, so it matched a digits-then-dot run ANYWHERE — including inside\nURLs. `report-2024.pdf` parsed as `report-`, `/v2.0/` as `/v`, and an IP-literal URL like\n`192.168.1.10` was shredded and dr\n[…]\nl so blocks[i] / writtenNumbers[i] stay index-aligned.\n\nTests: digits-then-dot URLs preserved in both the [N] and N. marker forms.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(citations): stop parseCitations splitting URLs on digits-then-dot",
          "author_name": "Lincoln504",
          "author_login": "Lincoln504",
          "committed_at": "2026-07-03T08:04:57Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "ae21af1b48eacfa0cd75cbf513d4628d9ef3473b",
          "body": "…ycle\n\nFour observer→render defects where the panel showed a wrong or stuck state:\n\n- Failed researcher looked identical to a success. onResearcherFailure set the slice\n  status to 'failed' then completeSlice() — but the render suppresses the status field on\n  a completed slice and draws it muted, e\n[…]\not; quick-mode search\ncompletion leaves the slice active until the researcher finishes; quick-mode failure marks\nthe slice failed.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(tui): render researcher failures; fix quick-mode & eval-box lifec…",
          "author_name": "Lincoln504",
          "author_login": "Lincoln504",
          "committed_at": "2026-07-03T08:04:43Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "53531e8f58a48141fd70489c9a7c1008d7a61775",
          "body": "…registry\n\nThe token count and cost the research tool reports (details.totalTokens, the export\n\"Total cost\" footer, and /research print-mode) were read from panelState.totalTokens/\ntotalCost — a TUI-observer-only tally. Two consequences:\n\n  - Headless/SDK/print-mode runs use HeadlessObserver, which \n[…]\nsive metrics.clearSession() after each unit test to keep session-metric assertions\ndeterministic if vitest isolation ever changes.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(core): unify LLM token/cost accounting on the run-scoped metrics …",
          "author_name": "Lincoln504",
          "author_login": "Lincoln504",
          "committed_at": "2026-07-03T08:04:25Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "e0fa814901165e752a5eafc5dff63596f1664857",
          "body": "…g (Windows CI red)\n\nThe Windows unit-test leg was failing (2/2 recent runs) with unhandled\n\"Cannot reset container while disposing\" rejections thrown from index.test.ts's\nafterEach. Root cause was a teardown race: a disposeAll() sets isDisposing=true while\nawaiting each service's async dispose(), a\n[…]\nh await the reset (prevents overlap with the next test). +1 regression test that\nstarts a disposal and calls reset() concurrently.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(core): reset() waits out an in-flight disposal instead of throwin…",
          "author_name": "Lincoln504",
          "author_login": "Lincoln504",
          "committed_at": "2026-07-03T07:16:23Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "13af4f00fe1341645e3c019e3003572461e4e19a",
          "body": "The coordinator's round-1 search count (\"N results\", climbing as queries return) is\nwritten to its slice status and rendered in the token row. Commit 0a9da110 changed the\ncoordinator-column detector from a label substring to `sliceId === 'coord'` to stop a\nresearcher whose query contains \"planning\" \n[…]\n the status text always\nrenders. Token/cost blanking for the coordinator (and its sweep-2 tests) is preserved.\n+1 regression test.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(tui): restore the coordinator's live search-count display",
          "author_name": "Lincoln504",
          "author_login": "Lincoln504",
          "committed_at": "2026-07-03T07:00:59Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "f801f1f8423390fd2f1d65b492cab4bd6d20332e",
          "body": "… pdf-oxide-wasm\n\nThree dependency corrections after auditing which pins are genuine compat constraints\nvs. incidental floating ranges that ship an untested version:\n\n- typebox ^1.1.38 -> 1.1.38 (exact). TypeBox is a real runtime dep here — it builds\n  every tool's parameter schema and validates LLM\n[…]\neck, type-check:tests, lint, build, 1751 unit tests, deps:check, verify-package\n(223 files), npm audit (0 vulns), publish dry-run.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "chore(deps): align typebox to the host pin; move undici to 8; refresh…",
          "author_name": "Lincoln504",
          "author_login": "Lincoln504",
          "committed_at": "2026-07-03T06:47:16Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "4df90d7feae5a81c8f78eab56d31853d5354229f",
          "body": null,
          "is_bot": true,
          "headline": "chore(ci): regenerate docs/deps.svg (detailed module graph) [skip ci]",
          "author_name": "github-actions[bot]",
          "author_login": "github-actions[bot]",
          "committed_at": "2026-07-03T04:37:06Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "78fff588c915761dda30ac27a271dad537862360",
          "body": "An explicit status clear (status=undefined, e.g. a tool's done: event) took the\ndirect-write branch of updateSliceStatus and left the slice's flashStatus() timer\narmed. The next tool's status then saw that stale timer as \"still active\" and QUEUED\ninstead of showing immediately; when the stale timer \n[…]\nwith a per-slice\nclearSliceStatusFlash() on the clear path — same-slice only, no cross-researcher\nrefcounting. +1 regression test.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(tui): cancel a slice's pending status pop on explicit clear",
          "author_name": "Lincoln504",
          "author_login": "Lincoln504",
          "committed_at": "2026-07-03T04:35:38Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "c0863596f80e475ab6bcf7bb0b7c5fd5846e9c99",
          "body": "Success paths emitted { ok: true, ... } JSON, but every error path (missing\ncredentials, query validation, and the reportError catch-all for runtime/config/rate-\nlimit errors) printed plain text to stderr regardless of --json, so a machine consumer\nhad to special-case stderr on every failure. Thread\n[…]\nor, exitCode } (plus stack under PI_RESEARCH_DEBUG) on\nstdout when --json is set; the plain-text behavior is unchanged without it.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(cli): honor --json on error paths, not just success paths",
          "author_name": "Lincoln504",
          "author_login": "Lincoln504",
          "committed_at": "2026-07-03T04:35:38Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "f29034c1efbc4c87a428e5fbe2564dde7ca16301",
          "body": "… package root\n\nindex.ts re-exported the entire sdk.ts module with `export *`, which leaked\ngetSDKContainer() — marked @internal, test-only, and consumed solely by\nshutdown-perf.test.ts via a direct relative import — from the package's primary entry\npoint. Replaced the wildcard with an explicit name\n[…]\nchable via the separate, intentional `/sdk` raw-module subpath, which is a\ndeliberate advanced-consumer surface, not touched here.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "refactor(sdk): don't re-publish the internal getSDKContainer from the…",
          "author_name": "Lincoln504",
          "author_login": "Lincoln504",
          "committed_at": "2026-07-03T04:35:38Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "9b1ffe26d95f132c4f8f72456fdfb50392a6c4a3",
          "body": "lazyInitialization was set (usually false, with intent comments) at ~24 registration\nsites but NEVER read — register() always stores instance:null, so every service is\nlazy regardless. Eager-vs-lazy is actually driven by the init-time\ncriticalInfrastructure/eagerServices name lists, which proactivel\n[…]\nock\nFileLockService registration in the infrastructure init module (the browser/knowledge\nsites were wired in the locking commit).\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "refactor(container): remove the dead lazyInitialization flag",
          "author_name": "Lincoln504",
          "author_login": "Lincoln504",
          "committed_at": "2026-07-03T04:35:38Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "6eea5d04d5d9a56ec920c73ae456547bb0a834be",
          "body": "…rches\n\nA severity-filtered NVD search only ever sent cvssV3Severity. NVD's API filters\nbefore pi-research sees the data and only matches a CVE's own metric of that version,\nso any CVE carrying ONLY a CVSS v2 score (mostly pre-~2021, ~57k for HIGH alone) was\nsilently dropped — the client-side v2/v4 \n[…]\ny under the 6s no-key\nthrottle — documented NVD_API_KEY as the mitigation. 5 new tests incl. the dual-rated\nno-re-band regression.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(security): recover CVSS v2-only CVEs in severity-filtered NVD sea…",
          "author_name": "Lincoln504",
          "author_login": "Lincoln504",
          "committed_at": "2026-07-03T04:35:38Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "2198128d6f527b6388a9a2839f97103dfe015ea6",
          "body": "FileLockService was the last liveness check in the codebase still using a bare\nprocess.kill(pid, 0) — every other check (GPU, state-session, embedding) already\npairs PID with process start time via ProcessLifecycleService. Under PID reuse a\nrecycled PID made a dead owner's lock look \"alive\", delayin\n[…]\ne container cleanup commit. 6 new tests (legacy compat, same/foreign-PID\nreuse, memoization-not-per-tick, own-start-time-failure).\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(locking): PID+start-time (reuse-safe) liveness in FileLockService",
          "author_name": "Lincoln504",
          "author_login": "Lincoln504",
          "committed_at": "2026-07-03T04:35:38Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "4c3bf57b1e1bfda5d18533045510065e08131aee",
          "body": null,
          "is_bot": true,
          "headline": "chore(ci): regenerate docs/deps.svg (detailed module graph) [skip ci]",
          "author_name": "github-actions[bot]",
          "author_login": "github-actions[bot]",
          "committed_at": "2026-07-03T04:05:23Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c2cb7640d3e675cc7b775588459a63025077f7ff",
          "body": "quarantineFutureState() is deliberately excluded from cleanupOldBackups (a .quarantine copy\nmust never be restored into an older reader), so nothing pruned them. A machine repeatedly\nrunning an older build against newer state (rollback, bisect, flip-flopping installs) leaked\none orphaned copy per occurrence forever. Cap retention to the newest few after each write.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(state): bound quarantine-file retention",
          "author_name": "Lincoln504",
          "author_login": "Lincoln504",
          "committed_at": "2026-07-03T04:04:02Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "fd6d98644ac56e3c85a19d2b83a7721a3fa91fba",
          "body": "StateBrowserApi.isPidAlive and StateBrowserManager.isPidAlive formed a complete parallel\nliveness-check path that nothing invoked — StateManager composes browserApi but only calls\nget/set/clearBrowserServer, and the live liveness path is StateManager.isPidAlive ->\nprocessLifecycle.isPidAlive. Deleted the ~40 dead lines; the standardized PID+startTime\ncheck in ProcessLifecycleService is the single source of truth.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "refactor(state): remove the dead isPidAlive pathway",
          "author_name": "Lincoln504",
          "author_login": "Lincoln504",
          "committed_at": "2026-07-03T04:04:02Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "019f8cc139a2c8160840a4d71dd43c41ee02e90b",
          "body": "…values\n\nconfig.ts and cli.ts each carried a hand-rolled parseDotEnv, and they diverged: the CLI's\ncopy stripped a matched pair of surrounding quotes, config.ts's did not. For non-project\nkeys the divergence was masked (the CLI bridges them into process.env, which wins), but\nproject-scoped keys are \n[…]\n in config.ts (the CLI's copy existed\nonly \"to avoid a dependency on an unexported helper\" — now exported), with regression tests.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "refactor(config): single dotenv parser — fixes quoted project-scoped …",
          "author_name": "Lincoln504",
          "author_login": "Lincoln504",
          "committed_at": "2026-07-03T04:04:02Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "ae57b154b417a388ed772c972094f6263d73f586",
          "body": "…ainst shutdown\n\ngetResearchReports() and runResearchDetailed().reports always returned an empty Map —\na documented public SDK feature, silently broken. Two independent causes:\n\n- Reports are stored keyed by researchId (\"sdk-<ts>\"), but getResearchReports looked\n  them up by _lastSessionId, a distin\n[…]\ninit first; _doInit's own failure cleanup\ncalls _doShutdown() directly so it can't re-enter and deadlock awaiting its own promise.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(sdk): return per-researcher reports from a run; serialize init ag…",
          "author_name": "Lincoln504",
          "author_login": "Lincoln504",
          "committed_at": "2026-07-03T04:03:50Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "18569d5fd68b739e5f7495409c17bae310c3d5c4",
          "body": "…gs dropped on a leader handoff\n\nThree related robustness gaps in the knowledge store, all reachable in normal use:\n\n- close() vs compaction race: only addDocuments registered into activeWrites, so\n  a Ctrl+C-driven close() firing while the post-run FTS rebuild / optimize ran in the\n  background cou\n[…]\nleader. Consolidated the two divergent copies of isEmbedderUnreachable into one\nshared, broadened classifier in embedder-utils.ts.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(knowledge): harden compaction teardown/locking and retry embeddin…",
          "author_name": "Lincoln504",
          "author_login": "Lincoln504",
          "committed_at": "2026-07-03T04:03:40Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "47a8c9e5144fcfacbdcce419be18ca9d76d55a90",
          "body": "- ARCHITECTURE.md: stdio capture lives at src/utils/stdio-capture.ts (not a non-existent\n  src/tui/utils/); terminal-protocol handling is delegated to @earendil-works/pi-tui.\n  HealthCheckService is a Core service; WriterQueue is defined in src/knowledge/.\n  completeSimple is re-exported from src/co\n[…]\nhed (npm\n  latest is still v0.1.13).\n- AGENT-SKILL.md / skill README: document the knowledge-config subcommand (was undercounted).\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "docs: fix architecture/README/skill drift",
          "author_name": "Lincoln504",
          "author_login": "Lincoln504",
          "committed_at": "2026-07-03T03:19:21Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "0a9da11045eebefce15a3805f33a7d5fb1fa3317",
          "body": "The panel hid the coordinator column's token/cost/status by matching \"planning\"/\n\"complexity\" (and \"plan\"/\"coord\" in the sort comparator) against the slice LABEL. In\nquick mode the slice id/label is the query itself, so a query like \"urban planning\nnews\" blanked that column's counters; a researcher'\n[…]\npecialist\") could likewise be mis-sorted into the coordinator's slot. Key both off the\nstable 'coord' slice id. +regression tests.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(tui): identify the coordinator column by slice id, not label text",
          "author_name": "Lincoln504",
          "author_login": "Lincoln504",
          "committed_at": "2026-07-03T03:19:21Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "496b2376d02b1ca6834a28a3857e6b713fa994f0",
          "body": "cleanupResearchServices re-derived config from disk via getConfig(ctx.cwd) instead of\nthe config the run actually resolved, so an SDK caller's options.config override (e.g.\nKNOWLEDGE_STORE_MODE:'none' to stay off the native vector stack, or to enable a store a\nrun wrote to) was ignored during the po\n[…]\nS-rebuild/optimize gate. Thread the\nrun's resolved Config through to cleanupResearchServices; both orchestrators pass\nthis.config.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(orchestration): honor the run's resolved config in post-run cleanup",
          "author_name": "Lincoln504",
          "author_login": "Lincoln504",
          "committed_at": "2026-07-03T03:19:10Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "461a3238a81657cee70f126481da8ac7a729c78d",
          "body": "…eManager on teardown\n\nTwo SDK-lifecycle correctness fixes:\n\n- research_manager_latency_ms was emitted via metrics.observe() AFTER runWithRunRegistry's\n  AsyncLocalStorage scope closed, so it fell back to session scope and accumulated unbounded\n  across calls in a long-lived process (e.g. a benchmar\n[…]\nch calls shutdown) would resurrect it just to dispose it. Use\n  container.tryGet so cleanup only touches an already-live instance.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(sdk): scope run latency to the run registry; don't resurrect Stat…",
          "author_name": "Lincoln504",
          "author_login": "Lincoln504",
          "committed_at": "2026-07-03T03:19:10Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "bfe925e146f6c7b33a06fff8310be757630df747",
          "body": "validateAndSanitizeQuery (length bounds, whitespace-only rejection, dangerous-content\ncheck) was enforced only on the pi tool path. The standalone CLI — and the skill\nlauncher that forwards to it — called runDeepResearch directly, so a whitespace-only\nor >100k-char query reached the orchestrator ung\n[…]\npty positional list). cmdResearch now applies the same gate before dispatching,\nexiting 64 with the validation message on failure.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(cli): validate and sanitize the research query on the CLI/skill path",
          "author_name": "Lincoln504",
          "author_login": "Lincoln504",
          "committed_at": "2026-07-03T03:18:58Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "524abdedda231c4ad306fe4a7a6e8acf605f65c9",
          "body": "saveConfig read the per-directory settings registry OUTSIDE the file lock and only\nlocked the write, so two concurrent local writes — e.g. `knowledge-config set` run in\nparallel across several directories — could both read the same pre-change snapshot and\nclobber each other's entry (a lost update). \n[…]\n — all in one critical\nsection. Both write sites (saveConfig local scope and the legacy .pi-research.env\nmigration) go through it.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(config): read-modify-write the project registry under one lock",
          "author_name": "Lincoln504",
          "author_login": "Lincoln504",
          "committed_at": "2026-07-03T03:18:58Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "f55702504954f22065c27aee5ff5ae84cdce78ab",
          "body": "…ped on Windows\n\nOn Windows a global `npm i -g` install resolves `pi-research` to a `.cmd` shim, which\n(post Node CVE-2024-27980) can only be spawned with shell:true. But shell:true routed\nthe untrusted research query through cmd.exe, where an unescaped `&`/`|`/`%VAR%`/`^`\nis a command-injection vec\n[…]\nth\nguidance (set PI_RESEARCH_BIN/PI_RESEARCH_PATH) rather than run unsafely. Non-Windows\nand node-path resolutions are unaffected.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "security(skill-launcher): don't pass the query through cmd.exe unesca…",
          "author_name": "Lincoln504",
          "author_login": "Lincoln504",
          "committed_at": "2026-07-03T03:18:48Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "de05d9904e2cb67b3b2c732227339bdc3717cc1f",
          "body": "…ressive-cleanup path exists\n\nThe comment claimed \"The /knowledge-store optimize path can opt into aggressive\ncleanup,\" but no command exposes that — the /knowledge-store pi command is query-only,\nand the sole production caller invokes optimize() with defaults. The\ndeleteUnverified/cleanupOlderThan options are a reserved knob with no wiring today;\nsay so instead of implying a user-facing path that doesn't exist. Comment-only.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "docs(knowledge): correct optimize() comment — no /knowledge-store agg…",
          "author_name": "Lincoln504",
          "author_login": "Lincoln504",
          "committed_at": "2026-07-03T02:29:53Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "64b234c8e3411377f201a5d0e85a727b69bdb842",
          "body": null,
          "is_bot": true,
          "headline": "chore(ci): regenerate docs/deps.svg (detailed module graph) [skip ci]",
          "author_name": "github-actions[bot]",
          "author_login": "github-actions[bot]",
          "committed_at": "2026-07-03T00:07:38Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "673c86830064ac76e7b01cd7461c06a37780cb09",
          "body": "The level-2/level-3 hard-cap tests still named and asserted the old 60/150 caps\n(loosely, via toBeLessThanOrEqual) while the actual ROUND_HARD_CAP is 45/100. The\nloose bound couldn't catch a regression that raised the cap. Retitle and assert the\nreal 45/100 caps.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "test(planning): tighten stale ROUND_HARD_CAP assertions to the real caps",
          "author_name": "Lincoln504",
          "author_login": "Lincoln504",
          "committed_at": "2026-07-03T00:06:11Z",
          "body_truncated": false,
          "is_coding_agent": true
        }
      ],
      "releases_count": 1,
      "commits_last_year": 1196,
      "latest_release_at": "2026-07-17T15:04:12Z",
      "latest_release_tag": "v1.0.8",
      "releases_from_tags": false,
      "days_since_last_push": 5,
      "active_weeks_last_year": 16,
      "days_since_latest_release": 5,
      "mean_days_between_releases": null
    },
    "community": {
      "has_readme": true,
      "has_license": true,
      "has_description": true,
      "has_contributing": false,
      "health_percentage": 42,
      "has_issue_template": false,
      "has_code_of_conduct": false,
      "has_pull_request_template": false
    },
    "ecosystem": {
      "packages": [
        {
          "name": "@lincoln504/pi-research",
          "exists": true,
          "license": "MIT",
          "keywords": [
            "pi",
            "pi-package",
            "pi-extension",
            "openclaw",
            "agent-skill",
            "research",
            "agent",
            "web-search",
            "scraping",
            "stealth-browser",
            "camoufox",
            "security",
            "stack-exchange"
          ],
          "ecosystem": "npm",
          "matches_repo": true,
          "registry_url": "https://www.npmjs.com/package/@lincoln504/pi-research",
          "is_deprecated": false,
          "latest_version": "1.0.8",
          "repository_url": "https://github.com/Lincoln504/pi-research",
          "versions_count": 21,
          "total_downloads": null,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": 1,
          "monthly_downloads": 2031,
          "first_published_at": "2026-04-19T05:29:37.230000Z",
          "latest_published_at": "2026-07-17T15:14:25.656000Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 5
        }
      ]
    },
    "popularity": {
      "forks": 2,
      "stars": 20,
      "watchers": 0,
      "fork_history": {
        "days": [
          {
            "date": "2026-05-05",
            "count": 1
          },
          {
            "date": "2026-05-12",
            "count": 1
          }
        ],
        "complete": true,
        "collected": 2,
        "total_forks": 2
      },
      "star_history": null,
      "open_issues_and_prs": 0
    },
    "ai_readiness": {
      "has_nix": false,
      "example_dirs": [],
      "has_llms_txt": false,
      "has_dockerfile": false,
      "has_mcp_signal": false,
      "bootstrap_files": [],
      "api_schema_files": [],
      "has_devcontainer": false,
      "typecheck_configs": [
        "tsconfig.json"
      ],
      "toolchain_manifests": [],
      "largest_source_bytes": 57491,
      "source_files_sampled": 357,
      "oversized_source_files": 0,
      "agent_instruction_files": [],
      "agent_instruction_max_bytes": null
    },
    "dependencies": {
      "manifests": [
        "package.json"
      ],
      "advisories": {
        "error": null,
        "scope": "repository_graph",
        "source": "osv",
        "findings": [
          {
            "name": "adm-zip",
            "direct": false,
            "version": "0.5.17",
            "severity": "high",
            "ecosystem": "npm",
            "cvss_score": 7.5,
            "advisory_ids": [
              "GHSA-xcpc-8h2w-3j85"
            ],
            "fixed_version": "0.6.0",
            "advisory_count": 1,
            "oldest_advisory_days": 12
          },
          {
            "name": "brace-expansion",
            "direct": false,
            "version": "5.0.6",
            "severity": "high",
            "ecosystem": "npm",
            "cvss_score": 7.5,
            "advisory_ids": [
              "GHSA-3jxr-9vmj-r5cp"
            ],
            "fixed_version": "5.0.7",
            "advisory_count": 1,
            "oldest_advisory_days": 1
          },
          {
            "name": "fast-uri",
            "direct": false,
            "version": "3.1.2",
            "severity": "high",
            "ecosystem": "npm",
            "cvss_score": 7.5,
            "advisory_ids": [
              "GHSA-4c8g-83qw-93j6",
              "GHSA-v2hh-gcrm-f6hx"
            ],
            "fixed_version": "4.1.1",
            "advisory_count": 2,
            "oldest_advisory_days": 1
          },
          {
            "name": "sharp",
            "direct": false,
            "version": "0.34.5",
            "severity": "high",
            "ecosystem": "npm",
            "cvss_score": 7.3,
            "advisory_ids": [
              "GHSA-f88m-g3jw-g9cj"
            ],
            "fixed_version": "0.35.0",
            "advisory_count": 1,
            "oldest_advisory_days": 0
          },
          {
            "name": "protobufjs",
            "direct": false,
            "version": "7.6.4",
            "severity": "moderate",
            "ecosystem": "npm",
            "cvss_score": 5.3,
            "advisory_ids": [
              "GHSA-j3f2-48v5-ccww"
            ],
            "fixed_version": "8.6.6",
            "advisory_count": 1,
            "oldest_advisory_days": 1
          }
        ],
        "collected": true,
        "malicious": [],
        "truncated": false,
        "by_severity": {
          "high": 4,
          "moderate": 1
        },
        "advisory_count": 6,
        "affected_count": 5,
        "assessed_count": 629,
        "malicious_count": 0,
        "assessed_package": null,
        "unassessed_count": 0,
        "direct_affected_count": 0
      },
      "ecosystems": [
        "npm"
      ],
      "dependencies": [
        {
          "name": "@earendil-works/pi-ai",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": ">=0.80.7 <1"
        },
        {
          "name": "@earendil-works/pi-coding-agent",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": ">=0.80.7 <1"
        },
        {
          "name": "@earendil-works/pi-tui",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": ">=0.80.7 <1"
        },
        {
          "name": "@huggingface/transformers",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "4.2.0"
        },
        {
          "name": "@kreuzberg/html-to-markdown-node",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "^3.5.5"
        },
        {
          "name": "@lancedb/lancedb",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "0.29.0"
        },
        {
          "name": "apache-arrow",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "21.1.0"
        },
        {
          "name": "bgutils-js",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "^3.2.0"
        },
        {
          "name": "camoufox-js",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "^0.10.2"
        },
        {
          "name": "esbuild",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "^0.28.1"
        },
        {
          "name": "impit",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "0.13.0"
        },
        {
          "name": "jsdom",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "^29.1.1"
        },
        {
          "name": "node-html-markdown",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "^2.0.0"
        },
        {
          "name": "pdf-oxide-wasm",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "^0.3.70"
        },
        {
          "name": "playwright-core",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "1.60.0"
        },
        {
          "name": "poolifier",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "^5.3.2"
        },
        {
          "name": "typebox",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "1.1.38"
        },
        {
          "name": "undici",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "^8.6.0"
        },
        {
          "name": "youtubei.js",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "^17.2.0"
        }
      ],
      "all_dependencies": {
        "error": null,
        "source": "github-sbom",
        "packages": [
          {
            "name": "@earendil-works/pi-ai",
            "direct": true,
            "version": "0.80.7",
            "ecosystem": "npm"
          },
          {
            "name": "@earendil-works/pi-coding-agent",
            "direct": true,
            "version": "0.80.7",
            "ecosystem": "npm"
          },
          {
            "name": "@earendil-works/pi-tui",
            "direct": true,
            "version": "0.80.7",
            "ecosystem": "npm"
          },
          {
            "name": "@huggingface/transformers",
            "direct": true,
            "version": "4.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "@kreuzberg/html-to-markdown-node",
            "direct": true,
            "version": "3.7.2",
            "ecosystem": "npm"
          },
          {
            "name": "@lancedb/lancedb",
            "direct": true,
            "version": "0.29.0",
            "ecosystem": "npm"
          },
          {
            "name": "apache-arrow",
            "direct": true,
            "version": "21.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "bgutils-js",
            "direct": true,
            "version": "3.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "camoufox-js",
            "direct": true,
            "version": "0.10.2",
            "ecosystem": "npm"
          },
          {
            "name": "esbuild",
            "direct": true,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "impit",
            "direct": true,
            "version": "0.13.0",
            "ecosystem": "npm"
          },
          {
            "name": "jsdom",
            "direct": true,
            "version": "29.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "node-html-markdown",
            "direct": true,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "pdf-oxide-wasm",
            "direct": true,
            "version": "0.3.70",
            "ecosystem": "npm"
          },
          {
            "name": "playwright-core",
            "direct": true,
            "version": "1.60.0",
            "ecosystem": "npm"
          },
          {
            "name": "poolifier",
            "direct": true,
            "version": "5.3.2",
            "ecosystem": "npm"
          },
          {
            "name": "typebox",
            "direct": true,
            "version": "1.1.38",
            "ecosystem": "npm"
          },
          {
            "name": "undici",
            "direct": true,
            "version": "7.28.0",
            "ecosystem": "npm"
          },
          {
            "name": "undici",
            "direct": true,
            "version": "8.5.0",
            "ecosystem": "npm"
          },
          {
            "name": "undici",
            "direct": true,
            "version": "8.6.0",
            "ecosystem": "npm"
          },
          {
            "name": "youtubei.js",
            "direct": true,
            "version": "17.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "@anthropic-ai/sdk",
            "direct": false,
            "version": "0.91.1",
            "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": "@aws-crypto/crc32",
            "direct": false,
            "version": "5.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "@aws-crypto/sha256-browser",
            "direct": false,
            "version": "5.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "@aws-crypto/sha256-js",
            "direct": false,
            "version": "5.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "@aws-crypto/supports-web-crypto",
            "direct": false,
            "version": "5.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "@aws-crypto/util",
            "direct": false,
            "version": "5.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "@aws-sdk/client-bedrock-runtime",
            "direct": false,
            "version": "3.1048.0",
            "ecosystem": "npm"
          },
          {
            "name": "@aws-sdk/core",
            "direct": false,
            "version": "3.974.11",
            "ecosystem": "npm"
          },
          {
            "name": "@aws-sdk/core",
            "direct": false,
            "version": "3.974.14",
            "ecosystem": "npm"
          },
          {
            "name": "@aws-sdk/credential-provider-env",
            "direct": false,
            "version": "3.972.37",
            "ecosystem": "npm"
          },
          {
            "name": "@aws-sdk/credential-provider-env",
            "direct": false,
            "version": "3.972.40",
            "ecosystem": "npm"
          },
          {
            "name": "@aws-sdk/credential-provider-http",
            "direct": false,
            "version": "3.972.39",
            "ecosystem": "npm"
          },
          {
            "name": "@aws-sdk/credential-provider-http",
            "direct": false,
            "version": "3.972.42",
            "ecosystem": "npm"
          },
          {
            "name": "@aws-sdk/credential-provider-ini",
            "direct": false,
            "version": "3.972.41",
            "ecosystem": "npm"
          },
          {
            "name": "@aws-sdk/credential-provider-ini",
            "direct": false,
            "version": "3.972.44",
            "ecosystem": "npm"
          },
          {
            "name": "@aws-sdk/credential-provider-login",
            "direct": false,
            "version": "3.972.41",
            "ecosystem": "npm"
          },
          {
            "name": "@aws-sdk/credential-provider-login",
            "direct": false,
            "version": "3.972.44",
            "ecosystem": "npm"
          },
          {
            "name": "@aws-sdk/credential-provider-node",
            "direct": false,
            "version": "3.972.42",
            "ecosystem": "npm"
          },
          {
            "name": "@aws-sdk/credential-provider-node",
            "direct": false,
            "version": "3.972.45",
            "ecosystem": "npm"
          },
          {
            "name": "@aws-sdk/credential-provider-process",
            "direct": false,
            "version": "3.972.37",
            "ecosystem": "npm"
          },
          {
            "name": "@aws-sdk/credential-provider-process",
            "direct": false,
            "version": "3.972.40",
            "ecosystem": "npm"
          },
          {
            "name": "@aws-sdk/credential-provider-sso",
            "direct": false,
            "version": "3.972.41",
            "ecosystem": "npm"
          },
          {
            "name": "@aws-sdk/credential-provider-sso",
            "direct": false,
            "version": "3.972.44",
            "ecosystem": "npm"
          },
          {
            "name": "@aws-sdk/credential-provider-web-identity",
            "direct": false,
            "version": "3.972.41",
            "ecosystem": "npm"
          },
          {
            "name": "@aws-sdk/credential-provider-web-identity",
            "direct": false,
            "version": "3.972.44",
            "ecosystem": "npm"
          },
          {
            "name": "@aws-sdk/eventstream-handler-node",
            "direct": false,
            "version": "3.972.16",
            "ecosystem": "npm"
          },
          {
            "name": "@aws-sdk/eventstream-handler-node",
            "direct": false,
            "version": "3.972.17",
            "ecosystem": "npm"
          },
          {
            "name": "@aws-sdk/middleware-eventstream",
            "direct": false,
            "version": "3.972.12",
            "ecosystem": "npm"
          },
          {
            "name": "@aws-sdk/middleware-eventstream",
            "direct": false,
            "version": "3.972.13",
            "ecosystem": "npm"
          },
          {
            "name": "@aws-sdk/middleware-websocket",
            "direct": false,
            "version": "3.972.19",
            "ecosystem": "npm"
          },
          {
            "name": "@aws-sdk/middleware-websocket",
            "direct": false,
            "version": "3.972.22",
            "ecosystem": "npm"
          },
          {
            "name": "@aws-sdk/nested-clients",
            "direct": false,
            "version": "3.997.12",
            "ecosystem": "npm"
          },
          {
            "name": "@aws-sdk/nested-clients",
            "direct": false,
            "version": "3.997.9",
            "ecosystem": "npm"
          },
          {
            "name": "@aws-sdk/signature-v4-multi-region",
            "direct": false,
            "version": "3.996.27",
            "ecosystem": "npm"
          },
          {
            "name": "@aws-sdk/signature-v4-multi-region",
            "direct": false,
            "version": "3.996.29",
            "ecosystem": "npm"
          },
          {
            "name": "@aws-sdk/token-providers",
            "direct": false,
            "version": "3.1048.0",
            "ecosystem": "npm"
          },
          {
            "name": "@aws-sdk/token-providers",
            "direct": false,
            "version": "3.1054.0",
            "ecosystem": "npm"
          },
          {
            "name": "@aws-sdk/types",
            "direct": false,
            "version": "3.973.8",
            "ecosystem": "npm"
          },
          {
            "name": "@aws-sdk/types",
            "direct": false,
            "version": "3.973.9",
            "ecosystem": "npm"
          },
          {
            "name": "@aws-sdk/util-locate-window",
            "direct": false,
            "version": "3.965.5",
            "ecosystem": "npm"
          },
          {
            "name": "@aws-sdk/xml-builder",
            "direct": false,
            "version": "3.972.24",
            "ecosystem": "npm"
          },
          {
            "name": "@aws-sdk/xml-builder",
            "direct": false,
            "version": "3.972.26",
            "ecosystem": "npm"
          },
          {
            "name": "@aws/lambda-invoke-store",
            "direct": false,
            "version": "0.2.4",
            "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/runtime",
            "direct": false,
            "version": "7.29.2",
            "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": "@bramus/specificity",
            "direct": false,
            "version": "2.4.2",
            "ecosystem": "npm"
          },
          {
            "name": "@bufbuild/protobuf",
            "direct": false,
            "version": "2.12.1",
            "ecosystem": "npm"
          },
          {
            "name": "@csstools/color-helpers",
            "direct": false,
            "version": "6.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "@csstools/css-calc",
            "direct": false,
            "version": "3.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "@csstools/css-color-parser",
            "direct": false,
            "version": "4.1.9",
            "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.5",
            "ecosystem": "npm"
          },
          {
            "name": "@csstools/css-tokenizer",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "@earendil-works/pi-agent-core",
            "direct": false,
            "version": "0.80.7",
            "ecosystem": "npm"
          },
          {
            "name": "@emnapi/core",
            "direct": false,
            "version": "1.10.0",
            "ecosystem": "npm"
          },
          {
            "name": "@emnapi/core",
            "direct": false,
            "version": "1.11.1",
            "ecosystem": "npm"
          },
          {
            "name": "@emnapi/runtime",
            "direct": false,
            "version": "1.10.0",
            "ecosystem": "npm"
          },
          {
            "name": "@emnapi/wasi-threads",
            "direct": false,
            "version": "1.2.1",
            "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.9.1",
            "ecosystem": "npm"
          },
          {
            "name": "@eslint-community/regexpp",
            "direct": false,
            "version": "4.12.2",
            "ecosystem": "npm"
          },
          {
            "name": "@eslint/config-array",
            "direct": false,
            "version": "0.23.5",
            "ecosystem": "npm"
          },
          {
            "name": "@eslint/config-helpers",
            "direct": false,
            "version": "0.6.0",
            "ecosystem": "npm"
          },
          {
            "name": "@eslint/core",
            "direct": false,
            "version": "1.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "@eslint/js",
            "direct": false,
            "version": "10.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "@eslint/object-schema",
            "direct": false,
            "version": "3.0.5",
            "ecosystem": "npm"
          },
          {
            "name": "@eslint/plugin-kit",
            "direct": false,
            "version": "0.7.1",
            "ecosystem": "npm"
          },
          {
            "name": "@exodus/bytes",
            "direct": false,
            "version": "1.15.1",
            "ecosystem": "npm"
          },
          {
            "name": "@google/genai",
            "direct": false,
            "version": "1.52.0",
            "ecosystem": "npm"
          },
          {
            "name": "@huggingface/jinja",
            "direct": false,
            "version": "0.5.9",
            "ecosystem": "npm"
          },
          {
            "name": "@huggingface/tokenizers",
            "direct": false,
            "version": "0.1.3",
            "ecosystem": "npm"
          },
          {
            "name": "@humanfs/core",
            "direct": false,
            "version": "0.19.1",
            "ecosystem": "npm"
          },
          {
            "name": "@humanfs/node",
            "direct": false,
            "version": "0.16.7",
            "ecosystem": "npm"
          },
          {
            "name": "@humanwhocodes/module-importer",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "@humanwhocodes/retry",
            "direct": false,
            "version": "0.4.3",
            "ecosystem": "npm"
          },
          {
            "name": "@img/colour",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "@img/sharp-darwin-arm64",
            "direct": false,
            "version": "0.34.5",
            "ecosystem": "npm"
          },
          {
            "name": "@img/sharp-darwin-x64",
            "direct": false,
            "version": "0.34.5",
            "ecosystem": "npm"
          },
          {
            "name": "@img/sharp-libvips-darwin-arm64",
            "direct": false,
            "version": "1.2.4",
            "ecosystem": "npm"
          },
          {
            "name": "@img/sharp-libvips-darwin-x64",
            "direct": false,
            "version": "1.2.4",
            "ecosystem": "npm"
          },
          {
            "name": "@img/sharp-libvips-linux-arm",
            "direct": false,
            "version": "1.2.4",
            "ecosystem": "npm"
          },
          {
            "name": "@img/sharp-libvips-linux-arm64",
            "direct": false,
            "version": "1.2.4",
            "ecosystem": "npm"
          },
          {
            "name": "@img/sharp-libvips-linux-ppc64",
            "direct": false,
            "version": "1.2.4",
            "ecosystem": "npm"
          },
          {
            "name": "@img/sharp-libvips-linux-riscv64",
            "direct": false,
            "version": "1.2.4",
            "ecosystem": "npm"
          },
          {
            "name": "@img/sharp-libvips-linux-s390x",
            "direct": false,
            "version": "1.2.4",
            "ecosystem": "npm"
          },
          {
            "name": "@img/sharp-libvips-linux-x64",
            "direct": false,
            "version": "1.2.4",
            "ecosystem": "npm"
          },
          {
            "name": "@img/sharp-libvips-linuxmusl-arm64",
            "direct": false,
            "version": "1.2.4",
            "ecosystem": "npm"
          },
          {
            "name": "@img/sharp-libvips-linuxmusl-x64",
            "direct": false,
            "version": "1.2.4",
            "ecosystem": "npm"
          },
          {
            "name": "@img/sharp-linux-arm",
            "direct": false,
            "version": "0.34.5",
            "ecosystem": "npm"
          },
          {
            "name": "@img/sharp-linux-arm64",
            "direct": false,
            "version": "0.34.5",
            "ecosystem": "npm"
          },
          {
            "name": "@img/sharp-linux-ppc64",
            "direct": false,
            "version": "0.34.5",
            "ecosystem": "npm"
          },
          {
            "name": "@img/sharp-linux-riscv64",
            "direct": false,
            "version": "0.34.5",
            "ecosystem": "npm"
          },
          {
            "name": "@img/sharp-linux-s390x",
            "direct": false,
            "version": "0.34.5",
            "ecosystem": "npm"
          },
          {
            "name": "@img/sharp-linux-x64",
            "direct": false,
            "version": "0.34.5",
            "ecosystem": "npm"
          },
          {
            "name": "@img/sharp-linuxmusl-arm64",
            "direct": false,
            "version": "0.34.5",
            "ecosystem": "npm"
          },
          {
            "name": "@img/sharp-linuxmusl-x64",
            "direct": false,
            "version": "0.34.5",
            "ecosystem": "npm"
          },
          {
            "name": "@img/sharp-wasm32",
            "direct": false,
            "version": "0.34.5",
            "ecosystem": "npm"
          },
          {
            "name": "@img/sharp-win32-arm64",
            "direct": false,
            "version": "0.34.5",
            "ecosystem": "npm"
          },
          {
            "name": "@img/sharp-win32-ia32",
            "direct": false,
            "version": "0.34.5",
            "ecosystem": "npm"
          },
          {
            "name": "@img/sharp-win32-x64",
            "direct": false,
            "version": "0.34.5",
            "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": "@kreuzberg/html-to-markdown-node-darwin-arm64",
            "direct": false,
            "version": "3.7.2",
            "ecosystem": "npm"
          },
          {
            "name": "@kreuzberg/html-to-markdown-node-darwin-x64",
            "direct": false,
            "version": "3.7.2",
            "ecosystem": "npm"
          },
          {
            "name": "@kreuzberg/html-to-markdown-node-linux-arm64-gnu",
            "direct": false,
            "version": "3.7.2",
            "ecosystem": "npm"
          },
          {
            "name": "@kreuzberg/html-to-markdown-node-linux-x64-gnu",
            "direct": false,
            "version": "3.7.2",
            "ecosystem": "npm"
          },
          {
            "name": "@kreuzberg/html-to-markdown-node-win32-arm64-msvc",
            "direct": false,
            "version": "3.7.2",
            "ecosystem": "npm"
          },
          {
            "name": "@kreuzberg/html-to-markdown-node-win32-x64-msvc",
            "direct": false,
            "version": "3.7.2",
            "ecosystem": "npm"
          },
          {
            "name": "@lancedb/lancedb-darwin-arm64",
            "direct": false,
            "version": "0.29.0",
            "ecosystem": "npm"
          },
          {
            "name": "@lancedb/lancedb-linux-arm64-gnu",
            "direct": false,
            "version": "0.29.0",
            "ecosystem": "npm"
          },
          {
            "name": "@lancedb/lancedb-linux-arm64-musl",
            "direct": false,
            "version": "0.29.0",
            "ecosystem": "npm"
          },
          {
            "name": "@lancedb/lancedb-linux-x64-gnu",
            "direct": false,
            "version": "0.29.0",
            "ecosystem": "npm"
          },
          {
            "name": "@lancedb/lancedb-linux-x64-musl",
            "direct": false,
            "version": "0.29.0",
            "ecosystem": "npm"
          },
          {
            "name": "@lancedb/lancedb-win32-arm64-msvc",
            "direct": false,
            "version": "0.29.0",
            "ecosystem": "npm"
          },
          {
            "name": "@lancedb/lancedb-win32-x64-msvc",
            "direct": false,
            "version": "0.29.0",
            "ecosystem": "npm"
          },
          {
            "name": "@mariozechner/clipboard",
            "direct": false,
            "version": "0.3.9",
            "ecosystem": "npm"
          },
          {
            "name": "@mariozechner/clipboard-darwin-arm64",
            "direct": false,
            "version": "0.3.9",
            "ecosystem": "npm"
          },
          {
            "name": "@mariozechner/clipboard-darwin-universal",
            "direct": false,
            "version": "0.3.9",
            "ecosystem": "npm"
          },
          {
            "name": "@mariozechner/clipboard-darwin-x64",
            "direct": false,
            "version": "0.3.9",
            "ecosystem": "npm"
          },
          {
            "name": "@mariozechner/clipboard-linux-arm64-gnu",
            "direct": false,
            "version": "0.3.9",
            "ecosystem": "npm"
          },
          {
            "name": "@mariozechner/clipboard-linux-arm64-musl",
            "direct": false,
            "version": "0.3.9",
            "ecosystem": "npm"
          },
          {
            "name": "@mariozechner/clipboard-linux-riscv64-gnu",
            "direct": false,
            "version": "0.3.9",
            "ecosystem": "npm"
          },
          {
            "name": "@mariozechner/clipboard-linux-x64-gnu",
            "direct": false,
            "version": "0.3.9",
            "ecosystem": "npm"
          },
          {
            "name": "@mariozechner/clipboard-linux-x64-musl",
            "direct": false,
            "version": "0.3.9",
            "ecosystem": "npm"
          },
          {
            "name": "@mariozechner/clipboard-win32-arm64-msvc",
            "direct": false,
            "version": "0.3.9",
            "ecosystem": "npm"
          },
          {
            "name": "@mariozechner/clipboard-win32-x64-msvc",
            "direct": false,
            "version": "0.3.9",
            "ecosystem": "npm"
          },
          {
            "name": "@mistralai/mistralai",
            "direct": false,
            "version": "2.2.6",
            "ecosystem": "npm"
          },
          {
            "name": "@napi-rs/wasm-runtime",
            "direct": false,
            "version": "1.1.5",
            "ecosystem": "npm"
          },
          {
            "name": "@nodable/entities",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "@nolyfill/domexception",
            "direct": false,
            "version": "1.0.28",
            "ecosystem": "npm"
          },
          {
            "name": "@opentelemetry/api",
            "direct": false,
            "version": "1.9.0",
            "ecosystem": "npm"
          },
          {
            "name": "@opentelemetry/semantic-conventions",
            "direct": false,
            "version": "1.41.1",
            "ecosystem": "npm"
          },
          {
            "name": "@oxc-project/types",
            "direct": false,
            "version": "0.133.0",
            "ecosystem": "npm"
          },
          {
            "name": "@protobufjs/aspromise",
            "direct": false,
            "version": "1.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "@protobufjs/base64",
            "direct": false,
            "version": "1.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "@protobufjs/codegen",
            "direct": false,
            "version": "2.0.5",
            "ecosystem": "npm"
          },
          {
            "name": "@protobufjs/eventemitter",
            "direct": false,
            "version": "1.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "@protobufjs/fetch",
            "direct": false,
            "version": "1.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "@protobufjs/float",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "@protobufjs/path",
            "direct": false,
            "version": "1.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "@protobufjs/pool",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "@protobufjs/utf8",
            "direct": false,
            "version": "1.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-android-arm64",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-darwin-arm64",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-darwin-x64",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-freebsd-x64",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-linux-arm-gnueabihf",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-linux-arm64-gnu",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-linux-arm64-musl",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-linux-ppc64-gnu",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-linux-s390x-gnu",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-linux-x64-gnu",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-linux-x64-musl",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-openharmony-arm64",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-wasm32-wasi",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-win32-arm64-msvc",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-win32-x64-msvc",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/pluginutils",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "@silvia-odwyer/photon-node",
            "direct": false,
            "version": "0.3.4",
            "ecosystem": "npm"
          },
          {
            "name": "@sindresorhus/is",
            "direct": false,
            "version": "4.6.0",
            "ecosystem": "npm"
          },
          {
            "name": "@smithy/core",
            "direct": false,
            "version": "3.24.3",
            "ecosystem": "npm"
          },
          {
            "name": "@smithy/core",
            "direct": false,
            "version": "3.24.4",
            "ecosystem": "npm"
          },
          {
            "name": "@smithy/credential-provider-imds",
            "direct": false,
            "version": "4.3.3",
            "ecosystem": "npm"
          },
          {
            "name": "@smithy/credential-provider-imds",
            "direct": false,
            "version": "4.3.4",
            "ecosystem": "npm"
          },
          {
            "name": "@smithy/fetch-http-handler",
            "direct": false,
            "version": "5.4.3",
            "ecosystem": "npm"
          },
          {
            "name": "@smithy/fetch-http-handler",
            "direct": false,
            "version": "5.4.4",
            "ecosystem": "npm"
          },
          {
            "name": "@smithy/is-array-buffer",
            "direct": false,
            "version": "2.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "@smithy/node-http-handler",
            "direct": false,
            "version": "4.7.3",
            "ecosystem": "npm"
          },
          {
            "name": "@smithy/signature-v4",
            "direct": false,
            "version": "5.4.3",
            "ecosystem": "npm"
          },
          {
            "name": "@smithy/signature-v4",
            "direct": false,
            "version": "5.4.4",
            "ecosystem": "npm"
          },
          {
            "name": "@smithy/types",
            "direct": false,
            "version": "4.14.2",
            "ecosystem": "npm"
          },
          {
            "name": "@smithy/util-buffer-from",
            "direct": false,
            "version": "2.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "@smithy/util-utf8",
            "direct": false,
            "version": "2.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "@standard-schema/spec",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "@swc/helpers",
            "direct": false,
            "version": "0.5.21",
            "ecosystem": "npm"
          },
          {
            "name": "@tybys/wasm-util",
            "direct": false,
            "version": "0.10.2",
            "ecosystem": "npm"
          },
          {
            "name": "@types/chai",
            "direct": false,
            "version": "5.2.3",
            "ecosystem": "npm"
          },
          {
            "name": "@types/command-line-args",
            "direct": false,
            "version": "5.2.3",
            "ecosystem": "npm"
          },
          {
            "name": "@types/command-line-usage",
            "direct": false,
            "version": "5.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "@types/deep-eql",
            "direct": false,
            "version": "4.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "@types/esrecurse",
            "direct": false,
            "version": "4.3.1",
            "ecosystem": "npm"
          },
          {
            "name": "@types/estree",
            "direct": false,
            "version": "1.0.8",
            "ecosystem": "npm"
          },
          {
            "name": "@types/jsdom",
            "direct": false,
            "version": "28.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "@types/json-schema",
            "direct": false,
            "version": "7.0.15",
            "ecosystem": "npm"
          },
          {
            "name": "@types/node",
            "direct": false,
            "version": "22.19.19",
            "ecosystem": "npm"
          },
          {
            "name": "@types/node",
            "direct": false,
            "version": "24.12.4",
            "ecosystem": "npm"
          },
          {
            "name": "@types/node",
            "direct": false,
            "version": "25.5.2",
            "ecosystem": "npm"
          },
          {
            "name": "@types/retry",
            "direct": false,
            "version": "0.12.0",
            "ecosystem": "npm"
          },
          {
            "name": "@types/tough-cookie",
            "direct": false,
            "version": "4.0.5",
            "ecosystem": "npm"
          },
          {
            "name": "@typescript-eslint/eslint-plugin",
            "direct": false,
            "version": "8.60.0",
            "ecosystem": "npm"
          },
          {
            "name": "@typescript-eslint/parser",
            "direct": false,
            "version": "8.60.0",
            "ecosystem": "npm"
          },
          {
            "name": "@typescript-eslint/project-service",
            "direct": false,
            "version": "8.60.0",
            "ecosystem": "npm"
          },
          {
            "name": "@typescript-eslint/scope-manager",
            "direct": false,
            "version": "8.60.0",
            "ecosystem": "npm"
          },
          {
            "name": "@typescript-eslint/tsconfig-utils",
            "direct": false,
            "version": "8.60.0",
            "ecosystem": "npm"
          },
          {
            "name": "@typescript-eslint/type-utils",
            "direct": false,
            "version": "8.60.0",
            "ecosystem": "npm"
          },
          {
            "name": "@typescript-eslint/types",
            "direct": false,
            "version": "8.60.0",
            "ecosystem": "npm"
          },
          {
            "name": "@typescript-eslint/typescript-estree",
            "direct": false,
            "version": "8.60.0",
            "ecosystem": "npm"
          },
          {
            "name": "@typescript-eslint/utils",
            "direct": false,
            "version": "8.60.0",
            "ecosystem": "npm"
          },
          {
            "name": "@typescript-eslint/visitor-keys",
            "direct": false,
            "version": "8.60.0",
            "ecosystem": "npm"
          },
          {
            "name": "@vitest/coverage-v8",
            "direct": false,
            "version": "4.1.7",
            "ecosystem": "npm"
          },
          {
            "name": "@vitest/expect",
            "direct": false,
            "version": "4.1.7",
            "ecosystem": "npm"
          },
          {
            "name": "@vitest/mocker",
            "direct": false,
            "version": "4.1.7",
            "ecosystem": "npm"
          },
          {
            "name": "@vitest/pretty-format",
            "direct": false,
            "version": "4.1.7",
            "ecosystem": "npm"
          },
          {
            "name": "@vitest/runner",
            "direct": false,
            "version": "4.1.7",
            "ecosystem": "npm"
          },
          {
            "name": "@vitest/snapshot",
            "direct": false,
            "version": "4.1.7",
            "ecosystem": "npm"
          },
          {
            "name": "@vitest/spy",
            "direct": false,
            "version": "4.1.7",
            "ecosystem": "npm"
          },
          {
            "name": "@vitest/utils",
            "direct": false,
            "version": "4.1.7",
            "ecosystem": "npm"
          },
          {
            "name": "@webgpu/types",
            "direct": false,
            "version": "0.1.70",
            "ecosystem": "npm"
          },
          {
            "name": "acorn",
            "direct": false,
            "version": "8.16.0",
            "ecosystem": "npm"
          },
          {
            "name": "acorn-jsx",
            "direct": false,
            "version": "5.3.2",
            "ecosystem": "npm"
          },
          {
            "name": "acorn-jsx-walk",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "acorn-loose",
            "direct": false,
            "version": "8.5.2",
            "ecosystem": "npm"
          },
          {
            "name": "acorn-walk",
            "direct": false,
            "version": "8.3.5",
            "ecosystem": "npm"
          },
          {
            "name": "adm-zip",
            "direct": false,
            "version": "0.5.17",
            "ecosystem": "npm"
          },
          {
            "name": "agent-base",
            "direct": false,
            "version": "7.1.4",
            "ecosystem": "npm"
          },
          {
            "name": "ajv",
            "direct": false,
            "version": "6.14.0",
            "ecosystem": "npm"
          },
          {
            "name": "ajv",
            "direct": false,
            "version": "8.20.0",
            "ecosystem": "npm"
          },
          {
            "name": "ansi-regex",
            "direct": false,
            "version": "5.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "ansi-styles",
            "direct": false,
            "version": "4.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "arg",
            "direct": false,
            "version": "5.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "array-back",
            "direct": false,
            "version": "6.2.3",
            "ecosystem": "npm"
          },
          {
            "name": "assertion-error",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "ast-v8-to-istanbul",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "astral-regex",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "balanced-match",
            "direct": false,
            "version": "4.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "base64-js",
            "direct": false,
            "version": "1.5.1",
            "ecosystem": "npm"
          },
          {
            "name": "baseline-browser-mapping",
            "direct": false,
            "version": "2.10.20",
            "ecosystem": "npm"
          },
          {
            "name": "better-sqlite3",
            "direct": false,
            "version": "12.9.0",
            "ecosystem": "npm"
          },
          {
            "name": "bidi-js",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "bignumber.js",
            "direct": false,
            "version": "9.3.1",
            "ecosystem": "npm"
          },
          {
            "name": "bindings",
            "direct": false,
            "version": "1.5.0",
            "ecosystem": "npm"
          },
          {
            "name": "bl",
            "direct": false,
            "version": "4.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "boolbase",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "boolean",
            "direct": false,
            "version": "3.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "bowser",
            "direct": false,
            "version": "2.14.1",
            "ecosystem": "npm"
          },
          {
            "name": "brace-expansion",
            "direct": false,
            "version": "5.0.6",
            "ecosystem": "npm"
          },
          {
            "name": "browserslist",
            "direct": false,
            "version": "4.28.2",
            "ecosystem": "npm"
          },
          {
            "name": "buffer",
            "direct": false,
            "version": "5.7.1",
            "ecosystem": "npm"
          },
          {
            "name": "buffer-equal-constant-time",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "callsites",
            "direct": false,
            "version": "3.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "caniuse-lite",
            "direct": false,
            "version": "1.0.30001788",
            "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": "chalk-template",
            "direct": false,
            "version": "0.4.0",
            "ecosystem": "npm"
          },
          {
            "name": "chownr",
            "direct": false,
            "version": "1.1.4",
            "ecosystem": "npm"
          },
          {
            "name": "cli-progress",
            "direct": false,
            "version": "3.12.0",
            "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": "color-support",
            "direct": false,
            "version": "1.1.3",
            "ecosystem": "npm"
          },
          {
            "name": "command-line-args",
            "direct": false,
            "version": "6.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "command-line-usage",
            "direct": false,
            "version": "7.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "commander",
            "direct": false,
            "version": "14.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "compare-versions",
            "direct": false,
            "version": "5.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "convert-source-map",
            "direct": false,
            "version": "2.0.0",
            "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-uri-to-buffer",
            "direct": false,
            "version": "4.0.1",
            "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": "decompress-response",
            "direct": false,
            "version": "6.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "deep-extend",
            "direct": false,
            "version": "0.6.0",
            "ecosystem": "npm"
          },
          {
            "name": "deep-is",
            "direct": false,
            "version": "0.1.4",
            "ecosystem": "npm"
          },
          {
            "name": "define-data-property",
            "direct": false,
            "version": "1.1.4",
            "ecosystem": "npm"
          },
          {
            "name": "define-properties",
            "direct": false,
            "version": "1.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "dependency-cruiser",
            "direct": false,
            "version": "17.4.2",
            "ecosystem": "npm"
          },
          {
            "name": "depngn",
            "direct": false,
            "version": "0.6.0",
            "ecosystem": "npm"
          },
          {
            "name": "detect-libc",
            "direct": false,
            "version": "2.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "detect-node",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "diff",
            "direct": false,
            "version": "8.0.4",
            "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": "dot-prop",
            "direct": false,
            "version": "6.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "ecdsa-sig-formatter",
            "direct": false,
            "version": "1.0.11",
            "ecosystem": "npm"
          },
          {
            "name": "electron-to-chromium",
            "direct": false,
            "version": "1.5.342",
            "ecosystem": "npm"
          },
          {
            "name": "emoji-regex",
            "direct": false,
            "version": "8.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "end-of-stream",
            "direct": false,
            "version": "1.4.5",
            "ecosystem": "npm"
          },
          {
            "name": "enhanced-resolve",
            "direct": false,
            "version": "5.22.0",
            "ecosystem": "npm"
          },
          {
            "name": "entities",
            "direct": false,
            "version": "4.5.0",
            "ecosystem": "npm"
          },
          {
            "name": "entities",
            "direct": false,
            "version": "8.0.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.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "es6-error",
            "direct": false,
            "version": "4.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "escalade",
            "direct": false,
            "version": "3.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "escape-string-regexp",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "eslint",
            "direct": false,
            "version": "10.4.0",
            "ecosystem": "npm"
          },
          {
            "name": "eslint-scope",
            "direct": false,
            "version": "9.1.2",
            "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": "espree",
            "direct": false,
            "version": "11.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "esquery",
            "direct": false,
            "version": "1.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "esrecurse",
            "direct": false,
            "version": "4.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "estraverse",
            "direct": false,
            "version": "5.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "estree-walker",
            "direct": false,
            "version": "3.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "esutils",
            "direct": false,
            "version": "2.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "expand-template",
            "direct": false,
            "version": "2.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "expect-type",
            "direct": false,
            "version": "1.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "extend",
            "direct": false,
            "version": "3.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "fancy-log",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "fast-deep-equal",
            "direct": false,
            "version": "3.1.3",
            "ecosystem": "npm"
          },
          {
            "name": "fast-json-stable-stringify",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "fast-levenshtein",
            "direct": false,
            "version": "2.0.6",
            "ecosystem": "npm"
          },
          {
            "name": "fast-uri",
            "direct": false,
            "version": "3.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "fast-xml-builder",
            "direct": false,
            "version": "1.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "fast-xml-parser",
            "direct": false,
            "version": "5.7.3",
            "ecosystem": "npm"
          },
          {
            "name": "fdir",
            "direct": false,
            "version": "6.5.0",
            "ecosystem": "npm"
          },
          {
            "name": "fetch-blob",
            "direct": false,
            "version": "3.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "fflate",
            "direct": false,
            "version": "0.8.3",
            "ecosystem": "npm"
          },
          {
            "name": "file-entry-cache",
            "direct": false,
            "version": "8.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "file-uri-to-path",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "find-replace",
            "direct": false,
            "version": "5.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "find-up",
            "direct": false,
            "version": "5.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "fingerprint-generator",
            "direct": false,
            "version": "2.1.82",
            "ecosystem": "npm"
          },
          {
            "name": "flat-cache",
            "direct": false,
            "version": "4.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "flatbuffers",
            "direct": false,
            "version": "25.9.23",
            "ecosystem": "npm"
          },
          {
            "name": "flatted",
            "direct": false,
            "version": "3.4.2",
            "ecosystem": "npm"
          },
          {
            "name": "formdata-polyfill",
            "direct": false,
            "version": "4.0.10",
            "ecosystem": "npm"
          },
          {
            "name": "fs-constants",
            "direct": false,
            "version": "1.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": "gaxios",
            "direct": false,
            "version": "7.1.4",
            "ecosystem": "npm"
          },
          {
            "name": "gcp-metadata",
            "direct": false,
            "version": "8.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "generative-bayesian-network",
            "direct": false,
            "version": "2.1.82",
            "ecosystem": "npm"
          },
          {
            "name": "get-east-asian-width",
            "direct": false,
            "version": "1.6.0",
            "ecosystem": "npm"
          },
          {
            "name": "github-from-package",
            "direct": false,
            "version": "0.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "glob",
            "direct": false,
            "version": "13.0.6",
            "ecosystem": "npm"
          },
          {
            "name": "glob-parent",
            "direct": false,
            "version": "6.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "global-agent",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "global-directory",
            "direct": false,
            "version": "4.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "globalthis",
            "direct": false,
            "version": "1.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "google-auth-library",
            "direct": false,
            "version": "10.6.2",
            "ecosystem": "npm"
          },
          {
            "name": "google-logging-utils",
            "direct": false,
            "version": "1.1.3",
            "ecosystem": "npm"
          },
          {
            "name": "gopd",
            "direct": false,
            "version": "1.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "graceful-fs",
            "direct": false,
            "version": "4.2.11",
            "ecosystem": "npm"
          },
          {
            "name": "guid-typescript",
            "direct": false,
            "version": "1.0.9",
            "ecosystem": "npm"
          },
          {
            "name": "has-flag",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "has-property-descriptors",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "hasown",
            "direct": false,
            "version": "2.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "he",
            "direct": false,
            "version": "1.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "header-generator",
            "direct": false,
            "version": "2.1.82",
            "ecosystem": "npm"
          },
          {
            "name": "highlight.js",
            "direct": false,
            "version": "10.7.3",
            "ecosystem": "npm"
          },
          {
            "name": "hosted-git-info",
            "direct": false,
            "version": "9.0.3",
            "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": "http-proxy-agent",
            "direct": false,
            "version": "7.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "https-proxy-agent",
            "direct": false,
            "version": "7.0.6",
            "ecosystem": "npm"
          },
          {
            "name": "ieee754",
            "direct": false,
            "version": "1.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "ignore",
            "direct": false,
            "version": "5.3.2",
            "ecosystem": "npm"
          },
          {
            "name": "ignore",
            "direct": false,
            "version": "7.0.5",
            "ecosystem": "npm"
          },
          {
            "name": "impit-darwin-arm64",
            "direct": false,
            "version": "0.13.0",
            "ecosystem": "npm"
          },
          {
            "name": "impit-darwin-x64",
            "direct": false,
            "version": "0.13.0",
            "ecosystem": "npm"
          },
          {
            "name": "impit-linux-arm64-gnu",
            "direct": false,
            "version": "0.13.0",
            "ecosystem": "npm"
          },
          {
            "name": "impit-linux-arm64-musl",
            "direct": false,
            "version": "0.13.0",
            "ecosystem": "npm"
          },
          {
            "name": "impit-linux-x64-gnu",
            "direct": false,
            "version": "0.13.0",
            "ecosystem": "npm"
          },
          {
            "name": "impit-linux-x64-musl",
            "direct": false,
            "version": "0.13.0",
            "ecosystem": "npm"
          },
          {
            "name": "impit-win32-arm64-msvc",
            "direct": false,
            "version": "0.13.0",
            "ecosystem": "npm"
          },
          {
            "name": "impit-win32-x64-msvc",
            "direct": false,
            "version": "0.13.0",
            "ecosystem": "npm"
          },
          {
            "name": "imurmurhash",
            "direct": false,
            "version": "0.1.4",
            "ecosystem": "npm"
          },
          {
            "name": "inherits",
            "direct": false,
            "version": "2.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "ini",
            "direct": false,
            "version": "1.3.8",
            "ecosystem": "npm"
          },
          {
            "name": "ini",
            "direct": false,
            "version": "4.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "interpret",
            "direct": false,
            "version": "3.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "is-core-module",
            "direct": false,
            "version": "2.16.2",
            "ecosystem": "npm"
          },
          {
            "name": "is-extglob",
            "direct": false,
            "version": "2.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "is-fullwidth-code-point",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "is-glob",
            "direct": false,
            "version": "4.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "is-installed-globally",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "is-obj",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "is-path-inside",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "is-potential-custom-element-name",
            "direct": false,
            "version": "1.0.1",
            "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": "jiti",
            "direct": false,
            "version": "2.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "js-tokens",
            "direct": false,
            "version": "10.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "json-bigint",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "json-bignum",
            "direct": false,
            "version": "0.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "json-buffer",
            "direct": false,
            "version": "3.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "json-schema-to-ts",
            "direct": false,
            "version": "3.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "json-schema-traverse",
            "direct": false,
            "version": "0.4.1",
            "ecosystem": "npm"
          },
          {
            "name": "json-schema-traverse",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "json-stable-stringify-without-jsonify",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "json-stringify-safe",
            "direct": false,
            "version": "5.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "json5",
            "direct": false,
            "version": "2.2.3",
            "ecosystem": "npm"
          },
          {
            "name": "jwa",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "jws",
            "direct": false,
            "version": "4.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "keyv",
            "direct": false,
            "version": "4.5.4",
            "ecosystem": "npm"
          },
          {
            "name": "kleur",
            "direct": false,
            "version": "3.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "kleur",
            "direct": false,
            "version": "4.1.5",
            "ecosystem": "npm"
          },
          {
            "name": "language-subtag-registry",
            "direct": false,
            "version": "0.3.23",
            "ecosystem": "npm"
          },
          {
            "name": "language-tags",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "levn",
            "direct": false,
            "version": "0.4.1",
            "ecosystem": "npm"
          },
          {
            "name": "lightningcss",
            "direct": false,
            "version": "1.32.0",
            "ecosystem": "npm"
          },
          {
            "name": "lightningcss-android-arm64",
            "direct": false,
            "version": "1.32.0",
            "ecosystem": "npm"
          },
          {
            "name": "lightningcss-darwin-arm64",
            "direct": false,
            "version": "1.32.0",
            "ecosystem": "npm"
          },
          {
            "name": "lightningcss-darwin-x64",
            "direct": false,
            "version": "1.32.0",
            "ecosystem": "npm"
          },
          {
            "name": "lightningcss-freebsd-x64",
            "direct": false,
            "version": "1.32.0",
            "ecosystem": "npm"
          },
          {
            "name": "lightningcss-linux-arm-gnueabihf",
            "direct": false,
            "version": "1.32.0",
            "ecosystem": "npm"
          },
          {
            "name": "lightningcss-linux-arm64-gnu",
            "direct": false,
            "version": "1.32.0",
            "ecosystem": "npm"
          },
          {
            "name": "lightningcss-linux-arm64-musl",
            "direct": false,
            "version": "1.32.0",
            "ecosystem": "npm"
          },
          {
            "name": "lightningcss-linux-x64-gnu",
            "direct": false,
            "version": "1.32.0",
            "ecosystem": "npm"
          },
          {
            "name": "lightningcss-linux-x64-musl",
            "direct": false,
            "version": "1.32.0",
            "ecosystem": "npm"
          },
          {
            "name": "lightningcss-win32-arm64-msvc",
            "direct": false,
            "version": "1.32.0",
            "ecosystem": "npm"
          },
          {
            "name": "lightningcss-win32-x64-msvc",
            "direct": false,
            "version": "1.32.0",
            "ecosystem": "npm"
          },
          {
            "name": "locate-path",
            "direct": false,
            "version": "6.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "lodash.camelcase",
            "direct": false,
            "version": "4.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "lodash.truncate",
            "direct": false,
            "version": "4.4.2",
            "ecosystem": "npm"
          },
          {
            "name": "long",
            "direct": false,
            "version": "5.3.2",
            "ecosystem": "npm"
          },
          {
            "name": "lru-cache",
            "direct": false,
            "version": "11.4.0",
            "ecosystem": "npm"
          },
          {
            "name": "lru-cache",
            "direct": false,
            "version": "11.5.1",
            "ecosystem": "npm"
          },
          {
            "name": "magic-string",
            "direct": false,
            "version": "0.30.21",
            "ecosystem": "npm"
          },
          {
            "name": "magicast",
            "direct": false,
            "version": "0.5.2",
            "ecosystem": "npm"
          },
          {
            "name": "make-dir",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "marked",
            "direct": false,
            "version": "18.0.5",
            "ecosystem": "npm"
          },
          {
            "name": "matcher",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "maxmind",
            "direct": false,
            "version": "5.0.6",
            "ecosystem": "npm"
          },
          {
            "name": "mdn-data",
            "direct": false,
            "version": "2.27.1",
            "ecosystem": "npm"
          },
          {
            "name": "meriyah",
            "direct": false,
            "version": "6.1.4",
            "ecosystem": "npm"
          },
          {
            "name": "mimic-response",
            "direct": false,
            "version": "3.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "minimatch",
            "direct": false,
            "version": "10.2.5",
            "ecosystem": "npm"
          },
          {
            "name": "minimist",
            "direct": false,
            "version": "1.2.8",
            "ecosystem": "npm"
          },
          {
            "name": "minipass",
            "direct": false,
            "version": "7.1.3",
            "ecosystem": "npm"
          },
          {
            "name": "mkdirp-classic",
            "direct": false,
            "version": "0.5.3",
            "ecosystem": "npm"
          },
          {
            "name": "mmdb-lib",
            "direct": false,
            "version": "3.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "ms",
            "direct": false,
            "version": "2.1.3",
            "ecosystem": "npm"
          },
          {
            "name": "nanoid",
            "direct": false,
            "version": "3.3.12",
            "ecosystem": "npm"
          },
          {
            "name": "napi-build-utils",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "natural-compare",
            "direct": false,
            "version": "1.4.0",
            "ecosystem": "npm"
          },
          {
            "name": "node-abi",
            "direct": false,
            "version": "3.89.0",
            "ecosystem": "npm"
          },
          {
            "name": "node-domexception",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "node-fetch",
            "direct": false,
            "version": "3.3.2",
            "ecosystem": "npm"
          },
          {
            "name": "node-html-parser",
            "direct": false,
            "version": "6.1.13",
            "ecosystem": "npm"
          },
          {
            "name": "node-releases",
            "direct": false,
            "version": "2.0.37",
            "ecosystem": "npm"
          },
          {
            "name": "npm-check-updates",
            "direct": false,
            "version": "22.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "nth-check",
            "direct": false,
            "version": "2.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "object-keys",
            "direct": false,
            "version": "1.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "obug",
            "direct": false,
            "version": "2.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "once",
            "direct": false,
            "version": "1.4.0",
            "ecosystem": "npm"
          },
          {
            "name": "onnxruntime-common",
            "direct": false,
            "version": "1.24.3",
            "ecosystem": "npm"
          },
          {
            "name": "onnxruntime-node",
            "direct": false,
            "version": "1.24.3",
            "ecosystem": "npm"
          },
          {
            "name": "onnxruntime-web",
            "direct": false,
            "version": "1.24.3",
            "ecosystem": "npm"
          },
          {
            "name": "openai",
            "direct": false,
            "version": "6.26.0",
            "ecosystem": "npm"
          },
          {
            "name": "optionator",
            "direct": false,
            "version": "0.9.4",
            "ecosystem": "npm"
          },
          {
            "name": "ow",
            "direct": false,
            "version": "0.28.2",
            "ecosystem": "npm"
          },
          {
            "name": "p-limit",
            "direct": false,
            "version": "3.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "p-locate",
            "direct": false,
            "version": "5.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "p-retry",
            "direct": false,
            "version": "4.6.2",
            "ecosystem": "npm"
          },
          {
            "name": "parse5",
            "direct": false,
            "version": "8.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "partial-json",
            "direct": false,
            "version": "0.1.7",
            "ecosystem": "npm"
          },
          {
            "name": "path-exists",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "path-expression-matcher",
            "direct": false,
            "version": "1.5.0",
            "ecosystem": "npm"
          },
          {
            "name": "path-key",
            "direct": false,
            "version": "3.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "path-parse",
            "direct": false,
            "version": "1.0.7",
            "ecosystem": "npm"
          },
          {
            "name": "path-scurry",
            "direct": false,
            "version": "2.0.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.4",
            "ecosystem": "npm"
          },
          {
            "name": "platform",
            "direct": false,
            "version": "1.3.6",
            "ecosystem": "npm"
          },
          {
            "name": "postcss",
            "direct": false,
            "version": "8.5.15",
            "ecosystem": "npm"
          },
          {
            "name": "prebuild-install",
            "direct": false,
            "version": "7.1.3",
            "ecosystem": "npm"
          },
          {
            "name": "prelude-ls",
            "direct": false,
            "version": "1.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "pretty-bytes",
            "direct": false,
            "version": "7.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "prompts",
            "direct": false,
            "version": "2.4.2",
            "ecosystem": "npm"
          },
          {
            "name": "proper-lockfile",
            "direct": false,
            "version": "4.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "protobufjs",
            "direct": false,
            "version": "7.6.4",
            "ecosystem": "npm"
          },
          {
            "name": "pump",
            "direct": false,
            "version": "3.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "punycode",
            "direct": false,
            "version": "2.3.1",
            "ecosystem": "npm"
          },
          {
            "name": "rc",
            "direct": false,
            "version": "1.2.8",
            "ecosystem": "npm"
          },
          {
            "name": "readable-stream",
            "direct": false,
            "version": "3.6.2",
            "ecosystem": "npm"
          },
          {
            "name": "rechoir",
            "direct": false,
            "version": "0.8.0",
            "ecosystem": "npm"
          },
          {
            "name": "reflect-metadata",
            "direct": false,
            "version": "0.2.2",
            "ecosystem": "npm"
          },
          {
            "name": "regexp-tree",
            "direct": false,
            "version": "0.1.27",
            "ecosystem": "npm"
          },
          {
            "name": "require-from-string",
            "direct": false,
            "version": "2.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "resolve",
            "direct": false,
            "version": "1.22.12",
            "ecosystem": "npm"
          },
          {
            "name": "retry",
            "direct": false,
            "version": "0.12.0",
            "ecosystem": "npm"
          },
          {
            "name": "retry",
            "direct": false,
            "version": "0.13.1",
            "ecosystem": "npm"
          },
          {
            "name": "roarr",
            "direct": false,
            "version": "2.15.4",
            "ecosystem": "npm"
          },
          {
            "name": "rolldown",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "safe-buffer",
            "direct": false,
            "version": "5.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "safe-regex",
            "direct": false,
            "version": "2.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "sax",
            "direct": false,
            "version": "1.6.0",
            "ecosystem": "npm"
          },
          {
            "name": "saxes",
            "direct": false,
            "version": "6.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "semver",
            "direct": false,
            "version": "7.8.0",
            "ecosystem": "npm"
          },
          {
            "name": "semver",
            "direct": false,
            "version": "7.8.1",
            "ecosystem": "npm"
          },
          {
            "name": "semver-compare",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "serialize-error",
            "direct": false,
            "version": "7.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "sharp",
            "direct": false,
            "version": "0.34.5",
            "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": "siginfo",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "signal-exit",
            "direct": false,
            "version": "3.0.7",
            "ecosystem": "npm"
          },
          {
            "name": "simple-concat",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "simple-get",
            "direct": false,
            "version": "4.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "sisteransi",
            "direct": false,
            "version": "1.0.5",
            "ecosystem": "npm"
          },
          {
            "name": "slice-ansi",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "source-map-js",
            "direct": false,
            "version": "1.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "sprintf-js",
            "direct": false,
            "version": "1.1.3",
            "ecosystem": "npm"
          },
          {
            "name": "stackback",
            "direct": false,
            "version": "0.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "std-env",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "string-width",
            "direct": false,
            "version": "4.2.3",
            "ecosystem": "npm"
          },
          {
            "name": "string_decoder",
            "direct": false,
            "version": "1.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "strip-ansi",
            "direct": false,
            "version": "6.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "strip-bom",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "strip-json-comments",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "strnum",
            "direct": false,
            "version": "2.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "supports-color",
            "direct": false,
            "version": "7.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "supports-preserve-symlinks-flag",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "symbol-tree",
            "direct": false,
            "version": "3.2.4",
            "ecosystem": "npm"
          },
          {
            "name": "table",
            "direct": false,
            "version": "6.9.0",
            "ecosystem": "npm"
          },
          {
            "name": "table-layout",
            "direct": false,
            "version": "4.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "tapable",
            "direct": false,
            "version": "2.3.3",
            "ecosystem": "npm"
          },
          {
            "name": "tar-fs",
            "direct": false,
            "version": "2.1.4",
            "ecosystem": "npm"
          },
          {
            "name": "tar-stream",
            "direct": false,
            "version": "2.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "tiny-lru",
            "direct": false,
            "version": "13.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "tinybench",
            "direct": false,
            "version": "2.9.0",
            "ecosystem": "npm"
          },
          {
            "name": "tinyexec",
            "direct": false,
            "version": "1.0.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.4",
            "ecosystem": "npm"
          },
          {
            "name": "tldts-core",
            "direct": false,
            "version": "7.4.4",
            "ecosystem": "npm"
          },
          {
            "name": "tough-cookie",
            "direct": false,
            "version": "6.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "tr46",
            "direct": false,
            "version": "6.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "ts-algebra",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "ts-api-utils",
            "direct": false,
            "version": "2.5.0",
            "ecosystem": "npm"
          },
          {
            "name": "tsconfig-paths",
            "direct": false,
            "version": "4.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "tsconfig-paths-webpack-plugin",
            "direct": false,
            "version": "4.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "tslib",
            "direct": false,
            "version": "2.8.1",
            "ecosystem": "npm"
          },
          {
            "name": "tunnel-agent",
            "direct": false,
            "version": "0.6.0",
            "ecosystem": "npm"
          },
          {
            "name": "type-check",
            "direct": false,
            "version": "0.4.0",
            "ecosystem": "npm"
          },
          {
            "name": "type-fest",
            "direct": false,
            "version": "0.13.1",
            "ecosystem": "npm"
          },
          {
            "name": "typescript",
            "direct": false,
            "version": "6.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "typical",
            "direct": false,
            "version": "7.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "ua-parser-js",
            "direct": false,
            "version": "1.0.41",
            "ecosystem": "npm"
          },
          {
            "name": "undici-types",
            "direct": false,
            "version": "6.21.0",
            "ecosystem": "npm"
          },
          {
            "name": "undici-types",
            "direct": false,
            "version": "7.16.0",
            "ecosystem": "npm"
          },
          {
            "name": "undici-types",
            "direct": false,
            "version": "7.18.2",
            "ecosystem": "npm"
          },
          {
            "name": "undici-types",
            "direct": false,
            "version": "7.28.0",
            "ecosystem": "npm"
          },
          {
            "name": "update-browserslist-db",
            "direct": false,
            "version": "1.2.3",
            "ecosystem": "npm"
          },
          {
            "name": "uri-js",
            "direct": false,
            "version": "4.4.1",
            "ecosystem": "npm"
          },
          {
            "name": "util-deprecate",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "vali-date",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "vite",
            "direct": false,
            "version": "8.0.16",
            "ecosystem": "npm"
          },
          {
            "name": "vitest",
            "direct": false,
            "version": "4.1.7",
            "ecosystem": "npm"
          },
          {
            "name": "w3c-xmlserializer",
            "direct": false,
            "version": "5.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "watskeburt",
            "direct": false,
            "version": "5.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "web-streams-polyfill",
            "direct": false,
            "version": "3.3.3",
            "ecosystem": "npm"
          },
          {
            "name": "webgpu",
            "direct": false,
            "version": "0.4.0",
            "ecosystem": "npm"
          },
          {
            "name": "webidl-conversions",
            "direct": false,
            "version": "8.0.1",
            "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": "word-wrap",
            "direct": false,
            "version": "1.2.5",
            "ecosystem": "npm"
          },
          {
            "name": "wordwrapjs",
            "direct": false,
            "version": "5.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "wrappy",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "ws",
            "direct": false,
            "version": "8.21.0",
            "ecosystem": "npm"
          },
          {
            "name": "xml-name-validator",
            "direct": false,
            "version": "5.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "xml-naming",
            "direct": false,
            "version": "0.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "xml2js",
            "direct": false,
            "version": "0.6.2",
            "ecosystem": "npm"
          },
          {
            "name": "xmlbuilder",
            "direct": false,
            "version": "11.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "xmlchars",
            "direct": false,
            "version": "2.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "yaml",
            "direct": false,
            "version": "2.9.0",
            "ecosystem": "npm"
          },
          {
            "name": "yocto-queue",
            "direct": false,
            "version": "0.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "zod",
            "direct": false,
            "version": "3.25.76",
            "ecosystem": "npm"
          },
          {
            "name": "zod",
            "direct": false,
            "version": "4.3.6",
            "ecosystem": "npm"
          },
          {
            "name": "zod-to-json-schema",
            "direct": false,
            "version": "3.25.2",
            "ecosystem": "npm"
          }
        ],
        "collected": true,
        "truncated": false,
        "total_count": 629,
        "direct_count": 21,
        "indirect_count": 608
      }
    },
    "maintainership": {
      "issues": {
        "open_prs": 0,
        "merged_prs": 5,
        "open_issues": 0,
        "closed_ratio": null,
        "closed_issues": 0,
        "closed_unmerged_prs": 2
      },
      "bus_factor": 1,
      "bot_contributors": 1,
      "top_contributors": [
        {
          "type": "User",
          "login": "Lincoln504",
          "commits": 1107,
          "avatar_url": "https://avatars.githubusercontent.com/u/56658553?v=4"
        },
        {
          "type": "User",
          "login": "JustFady",
          "commits": 4,
          "avatar_url": "https://avatars.githubusercontent.com/u/62950351?v=4"
        }
      ],
      "contributors_sampled": 2,
      "top_contributor_share": 0.996
    },
    "quality_signals": {
      "has_ci": true,
      "has_tests": true,
      "ci_workflows": [
        "ci.yml",
        "release.yml"
      ],
      "has_docs_dir": true,
      "linter_configs": [
        "eslint.config.js"
      ],
      "has_editorconfig": false,
      "has_linter_config": true,
      "has_precommit_config": false
    },
    "security_signals": {
      "lockfiles": [
        "package-lock.json"
      ],
      "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": 0,
            "reason": "branch protection not enabled on development/release branches",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#branch-protection"
          },
          {
            "name": "CI-Tests",
            "score": null,
            "reason": "no pull request found",
            "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/30 approved changesets -- score normalized to 0",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#code-review"
          },
          {
            "name": "Contributors",
            "score": 0,
            "reason": "project has 0 contributing companies or organizations -- score normalized to 0",
            "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": 0,
            "reason": "no 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": 10,
            "reason": "license file 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": null,
            "reason": "packaging workflow not detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#packaging"
          },
          {
            "name": "Pinned-Dependencies",
            "score": 2,
            "reason": "dependency not pinned by hash detected -- score normalized to 2",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#pinned-dependencies"
          },
          {
            "name": "SAST",
            "score": 10,
            "reason": "SAST tool detected: CodeQL",
            "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": 10,
            "reason": "GitHub workflow tokens follow principle of least privilege",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#token-permissions"
          },
          {
            "name": "Vulnerabilities",
            "score": 4,
            "reason": "6 existing vulnerabilities detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#vulnerabilities"
          }
        ],
        "commit": "873f305df196e6506600fd2443a9452435c86c86",
        "ran_at": "2026-07-22T19:55:47Z",
        "aggregate_score": 4.9,
        "scorecard_version": "v5.5.0"
      },
      "has_codeql_workflow": false,
      "has_security_policy": false,
      "has_dependabot_config": false
    },
    "contribution_flow": {
      "collected": true,
      "ci_last_run_at": "2026-07-17T15:14:29Z",
      "oldest_open_prs": [],
      "last_merged_pr_at": "2026-05-05T23:04:40Z",
      "ci_last_conclusion": "SUCCESS",
      "oldest_open_issues": []
    }
  },
  "config": {
    "disabled_metrics": [],
    "disabled_categories": [],
    "disabled_components": {}
  },
  "source": {
    "url": "https://github.com/Lincoln504/pi-research",
    "host": "github.com",
    "name": "pi-research",
    "owner": "Lincoln504"
  },
  "metrics": {
    "overall": {
      "key": "overall",
      "band": "moderate",
      "name": "Overall health",
      "note": null,
      "notes": [],
      "value": 60,
      "inputs": {
        "security": 59,
        "vitality": 79,
        "community": 40,
        "governance": 45,
        "engineering": 74
      },
      "components": []
    },
    "categories": [
      {
        "key": "vitality",
        "band": "good",
        "name": "Vitality",
        "value": 79,
        "weight": 0.22,
        "metrics": [
          {
            "key": "development_activity",
            "band": "good",
            "name": "Development activity",
            "note": null,
            "notes": [],
            "value": 75,
            "inputs": {
              "commits_last_year": 1196,
              "human_commit_share": 0.91,
              "days_since_last_push": 5,
              "active_weeks_last_year": 16
            },
            "components": [
              {
                "key": "push_recency",
                "name": "Push recency",
                "detail": "last push 5 days ago",
                "points": 36,
                "status": "met",
                "details": [
                  {
                    "code": "push_recency",
                    "params": {
                      "days": 5
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_cadence",
                "name": "Commit cadence",
                "detail": "16/52 weeks with commits",
                "points": 11.1,
                "status": "partial",
                "details": [
                  {
                    "code": "commit_cadence_weeks",
                    "params": {
                      "weeks": 16
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_volume",
                "name": "Commit volume",
                "detail": "1196 commits in the last year",
                "points": 18,
                "status": "met",
                "details": [
                  {
                    "code": "commits_last_year",
                    "params": {
                      "count": 1196
                    }
                  }
                ],
                "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": "good",
            "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": 84,
            "inputs": {
              "releases_count": 1,
              "latest_release_tag": "v1.0.8",
              "releases_from_tags": false,
              "days_since_latest_release": 5,
              "mean_days_between_releases": null
            },
            "components": [
              {
                "key": "ships_releases",
                "name": "Ships releases",
                "detail": "1 releases published",
                "points": 27,
                "status": "met",
                "details": [
                  {
                    "code": "releases_published",
                    "params": {
                      "count": 1
                    }
                  }
                ],
                "max_points": 27
              },
              {
                "key": "release_recency",
                "name": "Release recency",
                "detail": "latest release 5 days ago",
                "points": 36,
                "status": "met",
                "details": [
                  {
                    "code": "release_recency",
                    "params": {
                      "days": 5
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "release_cadence",
                "name": "Release cadence",
                "detail": "cadence unknown (single release)",
                "points": 12.6,
                "status": "partial",
                "details": [
                  {
                    "code": "release_cadence_unknown",
                    "params": {}
                  }
                ],
                "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": 40,
        "weight": 0.18,
        "metrics": [
          {
            "key": "popularity",
            "band": "critical",
            "name": "Popularity & adoption",
            "note": null,
            "notes": [],
            "value": 21,
            "inputs": {
              "forks": 2,
              "stars": 20,
              "watchers": 0,
              "growth_state": "unverified",
              "growth_factor_pct": 100,
              "growth_unverified_reason": "no_history"
            },
            "components": [
              {
                "key": "stars",
                "name": "Stars",
                "detail": "20 stars",
                "points": 20.7,
                "status": "partial",
                "details": [
                  {
                    "code": "stars",
                    "params": {
                      "count": 20
                    }
                  }
                ],
                "max_points": 60
              },
              {
                "key": "forks",
                "name": "Forks",
                "detail": "2 forks",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "forks",
                    "params": {
                      "count": 2
                    }
                  }
                ],
                "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": "moderate",
            "name": "Community health",
            "note": null,
            "notes": [],
            "value": 50,
            "inputs": {
              "has_readme": true,
              "has_license": true,
              "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": "recognized license (MIT)",
                "points": 22.5,
                "status": "met",
                "details": [
                  {
                    "code": "license_standard",
                    "params": {}
                  },
                  {
                    "code": "license_spdx",
                    "params": {
                      "spdx": "MIT"
                    }
                  }
                ],
                "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": 55,
            "inputs": {
              "packages": [
                "@lincoln504/pi-research"
              ],
              "dependents": null,
              "ecosystems": "npm",
              "total_downloads": null,
              "monthly_downloads": 2031
            },
            "components": [
              {
                "key": "monthly_downloads",
                "name": "Monthly downloads",
                "detail": "2,031 downloads/month across npm",
                "points": 44.1,
                "status": "partial",
                "details": [
                  {
                    "code": "downloads_monthly",
                    "params": {
                      "count": 2031,
                      "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": "at_risk",
        "name": "Sustainability & Governance",
        "value": 45,
        "weight": 0.24,
        "metrics": [
          {
            "key": "maintainer_resilience",
            "band": "critical",
            "name": "Maintainer resilience (bus factor)",
            "note": null,
            "notes": [],
            "value": 12,
            "inputs": {
              "bus_factor": 1,
              "contributors_sampled": 2,
              "top_contributor_share": 0.996
            },
            "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.1,
                "status": "partial",
                "details": [
                  {
                    "code": "top_contributor_share",
                    "params": {
                      "share": 100
                    }
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributor_breadth",
                "name": "Contributor breadth",
                "detail": "2 contributors",
                "points": 2.7,
                "status": "partial",
                "details": [
                  {
                    "code": "contributors_sampled",
                    "params": {
                      "count": 2
                    }
                  }
                ],
                "max_points": 13.5
              },
              {
                "key": "openssf_scorecard_contributors",
                "name": "OpenSSF Scorecard: Contributors",
                "detail": "project has 0 contributing companies or organizations -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "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": 51,
            "inputs": {
              "merged_prs": 5,
              "open_issues": 0,
              "closed_issues": 0,
              "issue_closed_ratio": null,
              "closed_unmerged_prs": 2
            },
            "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": "5/7 decided PRs merged",
                "points": 27.3,
                "status": "partial",
                "details": [
                  {
                    "code": "decided_prs_merged",
                    "params": {
                      "merged": 5,
                      "decided": 7
                    }
                  }
                ],
                "max_points": 38.25
              },
              {
                "key": "openssf_scorecard_code_review",
                "name": "OpenSSF Scorecard: Code-Review",
                "detail": "Found 0/30 approved changesets -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 15
              }
            ]
          },
          {
            "key": "stewardship",
            "band": "at_risk",
            "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": 35,
            "inputs": {
              "followers": 1,
              "owner_type": "User",
              "is_verified": null,
              "owner_login": "Lincoln504",
              "public_repos": 2,
              "account_age_days": 2470
            },
            "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": "1 followers of Lincoln504",
                "points": 2.2,
                "status": "partial",
                "details": [
                  {
                    "code": "owner_followers",
                    "params": {
                      "count": 1,
                      "login": "Lincoln504"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "track_record",
                "name": "Track record",
                "detail": "2 public repos, account ~6 yr old",
                "points": 15.5,
                "status": "partial",
                "details": [
                  {
                    "code": "public_repos",
                    "params": {
                      "count": 2
                    }
                  },
                  {
                    "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": [
                "@lincoln504/pi-research"
              ],
              "ecosystems": "npm",
              "any_deprecated": false,
              "min_days_since_publish": 5
            },
            "components": [
              {
                "key": "published_resolvable",
                "name": "Published & resolvable",
                "detail": "1 package(s) on npm",
                "points": 25,
                "status": "met",
                "details": [
                  {
                    "code": "packages_published",
                    "params": {
                      "count": 1,
                      "ecosystems": "npm"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "publish_recency",
                "name": "Publish recency",
                "detail": "latest publish 5 days ago",
                "points": 35,
                "status": "met",
                "details": [
                  {
                    "code": "publish_recency",
                    "params": {
                      "days": 5
                    }
                  }
                ],
                "max_points": 35
              },
              {
                "key": "version_history",
                "name": "Version history",
                "detail": "21 published versions",
                "points": 20,
                "status": "met",
                "details": [
                  {
                    "code": "published_versions",
                    "params": {
                      "count": 21
                    }
                  }
                ],
                "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": "good",
        "name": "Engineering Quality",
        "value": 74,
        "weight": 0.2,
        "metrics": [
          {
            "key": "engineering_practices",
            "band": "good",
            "name": "Engineering practices",
            "note": "Excluded from scoring (no data or not applicable): OpenSSF Scorecard: CI-Tests. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "openssf_scorecard_ci_tests"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 80,
            "inputs": {
              "has_ci": true,
              "has_tests": true,
              "has_editorconfig": false,
              "has_linter_config": true,
              "has_precommit_config": false
            },
            "components": [
              {
                "key": "ci_workflows",
                "name": "CI workflows",
                "detail": "2 workflow(s)",
                "points": 24,
                "status": "met",
                "details": [
                  {
                    "code": "ci_workflows",
                    "params": {
                      "count": 2
                    }
                  }
                ],
                "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": "eslint.config.js",
                "points": 16,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "eslint.config.js"
                    }
                  }
                ],
                "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": 0,
                "status": "missed",
                "details": [],
                "max_points": 6.4
              },
              {
                "key": "openssf_scorecard_ci_tests",
                "name": "OpenSSF Scorecard: CI-Tests",
                "detail": "no pull request found",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 20
              }
            ]
          },
          {
            "key": "documentation",
            "band": "moderate",
            "name": "Documentation",
            "note": null,
            "notes": [],
            "value": 65,
            "inputs": {
              "topics": [],
              "has_wiki": false,
              "homepage": null,
              "has_readme": true,
              "has_docs_dir": true,
              "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": 25,
                "status": "met",
                "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": 59,
        "weight": 0.16,
        "metrics": [
          {
            "key": "security_posture",
            "band": "at_risk",
            "name": "Security posture",
            "note": "Excluded from scoring (no data or not applicable): CI-Tests, Packaging, Signed-Releases. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "ci_tests",
                    "packaging",
                    "signed_releases"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 49,
            "inputs": {
              "source": "openssf_scorecard",
              "checks_evaluated": 15,
              "scorecard_version": "v5.5.0",
              "checks_inconclusive": 3,
              "scorecard_aggregate": 4.9
            },
            "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": "branch protection not enabled on development/release branches",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "ci_tests",
                "name": "CI-Tests",
                "detail": "no pull request found",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "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/30 approved changesets -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "contributors",
                "name": "Contributors",
                "detail": "project has 0 contributing companies or organizations -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "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": "no update tool detected",
                "points": 0,
                "status": "missed",
                "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 detected",
                "points": 2.5,
                "status": "met",
                "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 not detected",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 5
              },
              {
                "key": "pinned_dependencies",
                "name": "Pinned-Dependencies",
                "detail": "dependency not pinned by hash detected -- score normalized to 2",
                "points": 1,
                "status": "partial",
                "details": [],
                "max_points": 5
              },
              {
                "key": "sast",
                "name": "SAST",
                "detail": "SAST tool detected: CodeQL",
                "points": 5,
                "status": "met",
                "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": "GitHub workflow tokens follow principle of least privilege",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "vulnerabilities",
                "name": "Vulnerabilities",
                "detail": "6 existing vulnerabilities detected",
                "points": 3,
                "status": "partial",
                "details": [],
                "max_points": 7.5
              }
            ]
          },
          {
            "key": "dependency_advisories",
            "band": "excellent",
            "name": "Dependency advisories",
            "note": "Excluded from scoring (no data or not applicable): Indirect dependencies free of known advisories, No advisories left outstanding. Remaining weights renormalized. Matched 629 resolved dependencies against OSV. This repository publishes no package the index resolves, so the repository dependency graph was assessed instead. That graph mixes development and test pins with shipped dependencies, so only the declared runtime dependencies are scored; transitive findings are reported as context and excluded from the score. Reachability is not analyzed.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "indirect_dependencies_free_of_known_advisories",
                    "no_advisories_left_outstanding"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              },
              {
                "code": "advisories_scope_repository",
                "params": {
                  "assessed": 629
                }
              },
              {
                "code": "advisories_repo_graph_caveat",
                "params": {}
              },
              {
                "code": "advisories_reachability",
                "params": {}
              }
            ],
            "value": 100,
            "inputs": {
              "source": "osv",
              "advisories": 6,
              "affected_packages": 5,
              "assessed_packages": 629,
              "unassessed_packages": 0,
              "affected_by_severity": "high 4, moderate 1",
              "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": "transitive set not separable from development and test dependencies in this scope",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "advisories_scope_not_separable",
                    "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": 629,
              "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
              }
            ]
          }
        ],
        "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": 63,
        "weight": 0,
        "metrics": [
          {
            "key": "ai_agent_context",
            "band": "at_risk",
            "name": "Agent context & guidance",
            "note": null,
            "notes": [],
            "value": 40,
            "inputs": {
              "has_llms_txt": false,
              "legible_history_share": 0.967,
              "agent_instruction_files": [],
              "agent_instruction_max_bytes": null
            },
            "components": [
              {
                "key": "agent_instructions",
                "name": "Agent instructions",
                "detail": "no CLAUDE.md / AGENTS.md / editor rules",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "no_agent_instructions",
                    "params": {}
                  }
                ],
                "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": "88 of 91 human commits state their intent (structured subject or explanatory body)",
                "points": 40,
                "status": "met",
                "details": [
                  {
                    "code": "legible_history",
                    "params": {
                      "legible": 88,
                      "sampled": 91
                    }
                  }
                ],
                "max_points": 40
              }
            ]
          },
          {
            "key": "ai_verify_loop",
            "band": "moderate",
            "name": "Verify loop (build / test / typecheck)",
            "note": null,
            "notes": [],
            "value": 66,
            "inputs": {
              "has_nix": false,
              "has_tests": true,
              "lockfiles": [
                "package-lock.json"
              ],
              "has_dockerfile": false,
              "typed_language": true,
              "bootstrap_files": [],
              "has_devcontainer": false,
              "has_linter_config": true,
              "typecheck_configs": [
                "tsconfig.json"
              ],
              "agent_commit_share": 0.28,
              "toolchain_manifests": [],
              "dependency_bot_commit_share": 0
            },
            "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": "eslint.config.js",
                "points": 11,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "eslint.config.js"
                    }
                  }
                ],
                "max_points": 11
              },
              {
                "key": "static_type_checking",
                "name": "Static type checking",
                "detail": "tsconfig.json",
                "points": 11,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "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": "28 of the last 100 commits agent-authored or agent-credited",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "agent_authored_commits",
                    "params": {
                      "count": 28,
                      "sampled": 100
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "automated_maintenance",
                "name": "Automated maintenance",
                "detail": "no automated dependency updates observed",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "no_dependency_automation",
                    "params": {}
                  }
                ],
                "max_points": 8
              },
              {
                "key": "openssf_scorecard_pinned_dependencies",
                "name": "OpenSSF Scorecard: Pinned-Dependencies",
                "detail": "dependency not pinned by hash detected -- score normalized to 2",
                "points": 2,
                "status": "partial",
                "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": 57491,
              "source_files_sampled": 357,
              "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/357 source files over 60KB",
                "points": 55,
                "status": "met",
                "details": [
                  {
                    "code": "oversized_source_files",
                    "params": {
                      "kb": 60,
                      "sampled": 357,
                      "oversized": 0
                    }
                  }
                ],
                "max_points": 55
              }
            ]
          }
        ],
        "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.13.0"
  },
  "warnings": [
    "Star history unavailable: GitHub GraphQL error: Resource not accessible by personal access token",
    "deps.dev does not index npm:@lincoln504/pi-research@1.0.8; advisories assessed against the repository dependency graph instead"
  ],
  "report_type": "repository",
  "generated_at": "2026-07-22T19:55:54.501146Z",
  "schema_version": "0.26.0",
  "badge_url": "https://raw.githubusercontent.com/inspect-software/badges/main/v1/l/Lincoln504/pi-research.svg",
  "full_name": "Lincoln504/pi-research",
  "license_state": "standard",
  "license_spdx": "MIT"
}

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.13.0, Schema v0.26.0 — vollständige Methodik · Metriken-Wiki.

Wie ein einzelnes Ergebnis im Gesamtregister steht: aggregierte Statistikennpm.