Public record
Software health reportschema 0.27.0 · metrics 1.13.0 · 2026-07-26 04:51 UTC

ixoworld / qiforge

A powerful framework for building and deploying Agentic Oracles on the IXO network. Built on LangGraph, Matrix, and NestJS, this framework enables developers to create intelligent oracles with secure communication, complex conversation flows, and automatic marketplace integration.

TypeScriptApache-2.0★ 4 stars⑂ 2 forkssince Jan 2025View on GitHub ↗

ixoworld/qiforge holds a health index of 70 out of 100, placing it in the Good band. It scores highest on Vitality (94/100) and lowest on Community & Adoption (37/100). It was last updated today. 2 contributors account for most of its recent work.

70
overall / 100
Good

Software health index

Metrics are grouped into weighted categories on one standardized 1–100 scale. Overall starts as their weighted mean; when public evidence triggers the High-Risk Jurisdiction Policy, the rating is adjusted and receives an At risk ceiling of 49. AI Readiness sits outside the overall score.

70
Excellent85-100Exemplary; meets essentially all checked criteria
Good70-84Healthy; minor gaps
Moderate50-69Acceptable with notable gaps; review recommended
At risk30-49Significant weaknesses; adoption warrants caution
Critical1-29Severe problems (abandoned, single-maintainer, no hygiene)
VitalityCommunity &AdoptionSustainability &GovernanceEngineeringQualitySecurityAI Readiness

Score profile

Each axis is a category. The shape matters more than the average — a healthy subject fills the whole shape, while a spike-and-crater profile means strength in one dimension is masking risk in another.

Ownership

IXO WorldOrganization
9 followers28 public repossince Nov 2018

This repository is backed by an organization — shared, accountable stewardship that can outlive any single maintainer.

Package ecosystems

RegistryPackageVersionDownloads / moVersionsLast publish
npm@ixo/ucan2.1.03,016115 days ago
npm@ixo/slack1.0.06071163 days ago
npm@ixo/common1.2.01,1091918 days ago
npm@ixo/oracles-events2.0.01,388718 days ago
npm@ixo/logger0.0.21,2053164 days ago
npm@ixo/matrix1.2.33708875 days ago
npm@ixo/sqlite-saver1.0.5591476 days ago
npm@ixo/eslint-config2.0.05902159 days ago

Metrics by category

Vitality

Is the project alive — is code being written and are releases shipping?

94Excellent · 22% of overall
How it's scored
36/36Push recency — last push 0 days ago
26.3/36Commit cadence — 38/52 weeks with commits
18/18Commit volume — 358 commits in the last year
10/10OpenSSF Scorecard: Maintained — 30 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10
Inputs used
commits_last_year358
human_commit_share1
days_since_last_push0
active_weeks_last_year38

Release discipline

100Excellent
How it's scored
27/27Ships releases — 100 releases published
36/36Release recency — latest release 6 days ago
27/27Release cadence — a release every ~3.7 days
0/10OpenSSF Scorecard: Signed-Releases — no data
Inputs used
releases_count100
latest_release_tag@ixo/sqlite-saver@1.0.55
releases_from_tagsno
days_since_latest_release6
mean_days_between_releases3.7
Excluded from scoring (no data or not applicable): OpenSSF Scorecard: Signed-Releases. Remaining weights renormalized.

Community & Adoption

Does the project have users, downloads, attention, and a welcoming setup for contributors?

37At risk · 18% of overall
How it's scored
7.7/60Stars — 4 stars
0/25Forks — 2 forks
0/15Watchers — 2 watchers
Inputs used
forks2
stars4
watchers2
growth_stateunverified
growth_factor_pct100
growth_unverified_reasonno_history
How it's scored
22.5/22.5README
22.5/22.5License — recognized license (Apache-2.0)
0/18CONTRIBUTING guide
0/13.5Code of conduct
0/7.2Issue template
0/6.3PR template
Inputs used
has_readmeyes
has_licenseyes
has_contributingno
has_issue_templateno
has_code_of_conductno
has_pull_request_templateno
How it's scored
53.1/80Monthly downloads — 9,537 downloads/month across npm
0/20Registry dependents — not reported by this ecosystem
Inputs used
packages@ixo/ucan, @ixo/slack, @ixo/common, @ixo/oracles-events, @ixo/logger, @ixo/matrix, @ixo/sqlite-saver, @ixo/eslint-config
dependents
ecosystemsnpm
total_downloads
monthly_downloads9,537
Excluded from scoring (no data or not applicable): Registry dependents. Remaining weights renormalized.

Sustainability & Governance

Will the project survive its people — bus factor, responsiveness, who backs it, and package upkeep?

70Good · 24% of overall
How it's scored
25.2/54Bus factor — 2 contributor(s) cover half of all commits
12.5/22.5Commit distribution — top contributor authored 44% of commits
10.8/13.5Contributor breadth — 8 contributors
10/10OpenSSF Scorecard: Contributors — project has 4 contributing companies or organizations
Inputs used
bus_factor2
contributors_sampled8
top_contributor_share0.443
How it's scored
0/46.8Issue resolution — no issues or no data
36.2/38.3PR acceptance — 215/227 decided PRs merged
1.5/15OpenSSF Scorecard: Code-Review — Found 4/23 approved changesets -- score normalized to 1
Inputs used
merged_prs215
open_issues0
closed_issues0
issue_closed_ratio
closed_unmerged_prs12
Excluded from scoring (no data or not applicable): Issue resolution. Remaining weights renormalized.
How it's scored
30/30Ownership backing — organization-owned
0/20Verified domain
7.2/25Owner reach — 9 followers of ixoworld
22.6/25Track record — 28 public repos, account ~7 yr old
Inputs used
followers9
owner_typeOrganization
is_verified
owner_loginixoworld
public_repos28
account_age_days2,817
How it's scored
25/25Published & resolvable — 8 package(s) on npm
35/35Publish recency — latest publish 5 days ago
20/20Version history — 19 published versions
20/20Not deprecated — active, not deprecated or yanked
Inputs used
packages@ixo/ucan, @ixo/slack, @ixo/common, @ixo/oracles-events, @ixo/logger, @ixo/matrix, @ixo/sqlite-saver, @ixo/eslint-config
ecosystemsnpm
any_deprecatedno
min_days_since_publish5

Engineering Quality

Are baseline engineering and documentation practices in place?

85Excellent · 20% of overall
How it's scored
24/24CI workflows — 3 workflow(s)
24/24Tests present
16/16Linter config — eslint.config.mjs
0/9.6Pre-commit hooks
0/6.4.editorconfig
18/20OpenSSF Scorecard: CI-Tests — 21 out of 23 merged PRs checked by a CI test -- score normalized to 9
Inputs used
has_ciyes
has_testsyes
has_editorconfigno
has_linter_configyes
has_precommit_configno

Documentation

90Excellent
How it's scored
30/30README
25/25Documentation directory
15/15Documentation / homepage site — https://www.ixo.world/
10/10Repository description
10/10Topics — 2 topics
0/10Wiki
Inputs used
topicsagentic-ai, ixo
has_wikino
homepagehttps://www.ixo.world/
has_readmeyes
has_docs_diryes
has_descriptionyes

Security

Are visible security and supply-chain practices strong, without unresolved high-risk jurisdiction exposure?

53Moderate · 16% of overall
How it's scored
7.5/7.5Binary-Artifacts — no binaries found in the repo
4.5/7.5Branch-Protection — branch protection is not maximal on development and all release branches
2.2/2.5CI-Tests — 21 out of 23 merged PRs checked by a CI test -- score normalized to 9
0/2.5CII-Best-Practices — no effort to earn an OpenSSF best practices badge detected
0.8/7.5Code-Review — Found 4/23 approved changesets -- score normalized to 1
2.5/2.5Contributors — project has 4 contributing companies or organizations
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.5License — 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 — no data
0/5Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 0
0/5SAST — SAST tool is not run on all commits -- score normalized to 0
0/5Security-Policy — security policy file not detected
0/7.5Signed-Releases — no data
0/7.5Token-Permissions — detected GitHub workflow tokens with excessive permissions
0/7.5Vulnerabilities — 93 existing vulnerabilities detected
Inputs used
sourceopenssf_scorecard
checks_evaluated16
scorecard_versionv5.5.0
checks_inconclusive2
scorecard_aggregate4.1
Excluded from scoring (no data or not applicable): packaging, signed_releases. Remaining weights renormalized.
How it's scored
35/35Direct dependencies free of known advisories — no direct dependency carries a known advisory
25/25Indirect dependencies free of known advisories — no indirect dependency carries a known advisory
0/40No advisories left outstanding — no advisory carries a publication date
Inputs used
sourceosv
advisories0
affected_packages0
assessed_packages20
unassessed_packages0
affected_by_severitynone
direct_affected_packages0
Excluded from scoring (no data or not applicable): No advisories left outstanding. Remaining weights renormalized. Matched the npm:@ixo/ucan@2.1.0 runtime dependency closure — what installing the published package pulls in — 20 packages. Reachability is not analyzed.

AI Readiness

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.

78Good · 0% of overall
How it's scored
45/45Agent instructions — CLAUDE.md, packages/oracles-chain-client/CLAUDE.md
0/15Machine-readable docs (llms.txt)
40/40Legible commit history — 98 of 100 human commits state their intent (structured subject or explanatory body)
Inputs used
has_llms_txtno
legible_history_share0.98
agent_instruction_filesCLAUDE.md, packages/oracles-chain-client/CLAUDE.md
agent_instruction_max_bytes13,072
How it's scored
0/18One-command bootstrap
22/22Automated tests
11/11Lint / format config — eslint.config.mjs
11/11Static type checking — apps/app/tsconfig.json, apps/qiforge-example/tsconfig.json, packages/common/tsconfig.json, packages/events/tsconfig.json, packages/logger/tsconfig.json, packages/matrix/tsconfig.json, packages/oracle-runtime/tsconfig.json, packages/oracles-chain-client/tsconfig.json, packages/oracles-client-sdk/tsconfig.json, packages/slack/tsconfig.json, packages/sqlite-saver/tsconfig.json, packages/ucan/tsconfig.json, tsconfig.json
10/10Reproducible environment — Dockerfile, lockfile
10/10Demonstrated agent practice — 10 of the last 100 commits agent-authored or agent-credited
0/8Automated maintenance — no automated dependency updates observed
0/10OpenSSF Scorecard: Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 0
Inputs used
has_nixno
has_testsyes
lockfilespnpm-lock.yaml
has_dockerfileyes
typed_languageyes
bootstrap_files
has_devcontainerno
has_linter_configyes
typecheck_configsapps/app/tsconfig.json, apps/qiforge-example/tsconfig.json, packages/common/tsconfig.json, packages/events/tsconfig.json, packages/logger/tsconfig.json, packages/matrix/tsconfig.json, packages/oracle-runtime/tsconfig.json, packages/oracles-chain-client/tsconfig.json, packages/oracles-client-sdk/tsconfig.json, packages/slack/tsconfig.json, packages/sqlite-saver/tsconfig.json, packages/ucan/tsconfig.json, tsconfig.json
agent_commit_share0.1
toolchain_manifests
dependency_bot_commit_share0
How it's scored
45/45Type-checkable code — TypeScript (statically typed)
54.7/55Manageable file sizes — 5/790 source files over 60KB
Inputs used
primary_languageTypeScript
largest_source_bytes125,688
source_files_sampled790
oversized_source_files5
How it's scored
40/40API schema (OpenAPI/GraphQL/proto) — packages/oracles-chain-client/src/client/claims/claims.graphql, packages/oracles-chain-client/src/client/entities/gql/entities.graphql, packages/oracles-chain-client/src/client/iid/idd.graphql
0/20MCP server
40/40Runnable examples — examples
Inputs used
example_dirsexamples
has_mcp_signalno
api_schema_filespackages/oracles-chain-client/src/client/claims/claims.graphql, packages/oracles-chain-client/src/client/entities/gql/entities.graphql, packages/oracles-chain-client/src/client/iid/idd.graphql

Key facts

4GitHub stars
8contributors
358commits, last 12 months
0days since last push
100releases
2bus factor
0open issues
npmpackage ecosystems

Data collection warnings

  • Star history unavailable: GitHub GraphQL error: Resource not accessible by personal access token
  • GitHub dependency-graph SBOM unavailable (404); the dependency graph may be disabled for this repository

More detail

Star and fork history 0 ★ / 2 ⇿
0Stars
2Forks
3Releases

When each star and fork was added, collected from GitHub and bucketed by day. Cumulative growth sits directly above the daily additions it is made of, so the two read against each other: steady organic accretion looks nothing like an abrupt, short-lived burst. Where that difference is measurable, it is reported as growth authenticity.

111222212025-122025-122025-12
Major 0Minor 0Patch 0
OpenSSF Scorecard 4.1 / 10
4.1aggregate

Independent, tool-agnostic security assessment from the open-source OpenSSF Scorecard. Each check rewards a security practice, not a specific vendor's tool. Checks Scorecard could not determine are marked n/a and excluded from the security score (never counted as zero).Scorecard v5.5.0 · 2026-07-26 04:50 UTC

10Binary-Artifactsno binaries found in the repo
6Branch-Protectionbranch protection is not maximal on development and all release branches
9CI-Tests21 out of 23 merged PRs checked by a CI test -- score normalized to 9
0CII-Best-Practicesno effort to earn an OpenSSF best practices badge detected
1Code-ReviewFound 4/23 approved changesets -- score normalized to 1
10Contributorsproject has 4 contributing companies or organizations
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
n/aPackagingpackaging workflow not detected
0Pinned-Dependenciesdependency not pinned by hash detected -- score normalized to 0
0SASTSAST tool is not run on all commits -- score normalized to 0
0Security-Policysecurity policy file not detected
n/aSigned-Releasesno releases found
0Token-Permissionsdetected GitHub workflow tokens with excessive permissions
0Vulnerabilities93 existing vulnerabilities detected
Direct dependencies 205
RegistryPackageVersion constraintManifest
npm@blocknote/server-util0.29.1apps/app/package.json
npm@composio/core0.10.0apps/app/package.json
npm@composio/langchain0.9.2apps/app/package.json
npm@ixo/common^1.1.39apps/app/package.json
npm@ixo/editor3.0.0-beta.11apps/app/package.json
npm@ixo/matrix^1.2.33apps/app/package.json
npm@ixo/matrix-crdt^1.1.0apps/app/package.json
npm@ixo/oracle-runtimeworkspace:*apps/app/package.json
npm@ixo/oracles-chain-client1.2.1apps/app/package.json
npm@ixo/oracles-events1.0.4apps/app/package.json
npm@ixo/slack1.0.0apps/app/package.json
npm@ixo/sqlite-saver^1.0.52apps/app/package.json
npm@ixo/ucan1.2.3apps/app/package.json
npm@langchain/community1.1.28apps/app/package.json
npm@langchain/core1.1.48apps/app/package.json
npm@langchain/langgraph1.3.2apps/app/package.json
npm@langchain/langgraph-supervisor1.0.3apps/app/package.json
npm@langchain/mcp-adapters1.1.3apps/app/package.json
npm@nestjs/bullmq^11.0.4apps/app/package.json
npm@nestjs/cache-manager^3.1.2apps/app/package.json
npm@nestjs/common^11.1.19apps/app/package.json
npm@nestjs/config^4.0.4apps/app/package.json
npm@nestjs/core^11.1.19apps/app/package.json
npm@nestjs/platform-express^11.1.19apps/app/package.json
npm@nestjs/platform-socket.io^11.1.19apps/app/package.json
npm@nestjs/schedule^6.1.3apps/app/package.json
npm@nestjs/swagger^11.4.2apps/app/package.json
npm@nestjs/throttler^6.5.0apps/app/package.json
npm@nestjs/websockets^11.1.19apps/app/package.json
npm@opentelemetry/sdk-node^0.215.0apps/app/package.json
npm@types/pg^8.11.14apps/app/package.json
npm@ucanto/client^9.0.1apps/app/package.json
npm@ucanto/core^10.0.1apps/app/package.json
npm@ucanto/interface^10.0.1apps/app/package.json
npm@ucanto/principal^9.0.1apps/app/package.json
npm@ucanto/server^10.0.0apps/app/package.json
npm@ucanto/transport^9.1.1apps/app/package.json
npm@ucanto/validator^9.0.2apps/app/package.json
npmbetter-sqlite3^12.9.0apps/app/package.json
npmbullmq^5.76.2apps/app/package.json
npmcache-manager^7.2.4apps/app/package.json
npmclass-transformer^0.5.1apps/app/package.json
npmclass-validator^0.14.1apps/app/package.json
npmcron-parser^5.5.0apps/app/package.json
npmdotenv^16.4.7apps/app/package.json
npmhelmet^8.1.0apps/app/package.json
npmioredis^5.6.1apps/app/package.json
npmipfs-only-hash^4.0.0apps/app/package.json
npmlangchain1.4.2apps/app/package.json
npmlangsmith^0.5.25apps/app/package.json
npmlodash-es^4.17.21apps/app/package.json
npmmarked^18.0.2apps/app/package.json
npmmatrix-js-sdk^37.11.0apps/app/package.json
npmnode-emoji^2.2.0apps/app/package.json
npmreflect-metadata^0.2.2apps/app/package.json
npmrxjs^7.8.1apps/app/package.json
npmsocket.io4.8.3apps/app/package.json
npmyjs^13.6.27apps/app/package.json
npmzod^4.3.6apps/app/package.json
npmzod-to-json-schema^3.25.2apps/app/package.json
npm@ixo/oracle-runtimeworkspace:*apps/qiforge-example/package.json
npm@nestjs/common^11.1.19apps/qiforge-example/package.json
npmdotenv^16.4.7apps/qiforge-example/package.json
npmioredis^5.6.1apps/qiforge-example/package.json
npmlangchain1.4.2apps/qiforge-example/package.json
npmmatrix-js-sdk^37.11.0apps/qiforge-example/package.json
npmreflect-metadata^0.2.2apps/qiforge-example/package.json
npm@cosmjs/proto-signing^0.39.0packages/common/package.json
npm@cosmjs/stargate^0.39.0packages/common/package.json
npm@ixo/impactxclient-sdk^3.0.0packages/common/package.json
npm@ixo/loggerworkspace:*packages/common/package.json
npm@ixo/matrixworkspace:*packages/common/package.json
npm@ixo/oracles-chain-clientworkspace:*packages/common/package.json
npm@langchain/community1.1.28packages/common/package.json
npm@langchain/core1.1.48packages/common/package.json
npm@langchain/langgraph1.3.2packages/common/package.json
npm@langchain/langgraph-checkpoint1.0.2packages/common/package.json
npm@langchain/langgraph-checkpoint-sqlite1.0.1packages/common/package.json
npm@langchain/openai1.4.7packages/common/package.json
npm@langchain/textsplitters1.0.1packages/common/package.json
npm@tavily/core0.7.2packages/common/package.json
npmaxios^1.7.9packages/common/package.json
npmaxios-retry^4.5.0packages/common/package.json
npmclass-transformer^0.5.1packages/common/package.json
npmclass-validator^0.14.1packages/common/package.json
npmdotenv^16.4.5packages/common/package.json
npmduck-duck-scrape^2.2.5packages/common/package.json
npmhtml-to-text9.0.5packages/common/package.json
npmlangchain1.4.2packages/common/package.json
npmlangsmith^0.5.25packages/common/package.json
npmmammoth1.12.0packages/common/package.json
npmnode-emoji^2.2.0packages/common/package.json
npmopenai^6.34.0packages/common/package.json
npmpdfjs-dist^5.4.296packages/common/package.json
npmplaywright^1.59.1packages/common/package.json
npmstore^2.0.12packages/common/package.json
npmzod^4.3.6packages/common/package.json
npmeventemitter26.4.9packages/events/package.json
npmwinston^3.14.2packages/logger/package.json
npm@ixo/loggerworkspace:*packages/matrix/package.json
npm@langchain/langgraph-checkpoint1.0.2packages/matrix/package.json
npmdotenv^17.2.0packages/matrix/package.json
npmmarked^16.4.0packages/matrix/package.json
npmmatrix-bot-sdknpm:@ixo/matrix-bot-sdk@^0.8.0-ixo.14packages/matrix/package.json
npmmatrix-js-sdk^37.11.0packages/matrix/package.json
npmsuperjson1.13.3packages/matrix/package.json
npm@blocknote/server-util0.29.1packages/oracle-runtime/package.json
npm@composio/core0.10.0packages/oracle-runtime/package.json
npm@composio/langchain0.9.2packages/oracle-runtime/package.json
npm@ixo/commonworkspace:*packages/oracle-runtime/package.json
npm@ixo/editor6.0.1packages/oracle-runtime/package.json
npm@ixo/matrixworkspace:*packages/oracle-runtime/package.json
npm@ixo/matrix-crdt^1.2.5packages/oracle-runtime/package.json
npm@ixo/oracles-chain-clientworkspace:*packages/oracle-runtime/package.json
npm@ixo/oracles-eventsworkspace:*packages/oracle-runtime/package.json
npm@ixo/slack1.0.0packages/oracle-runtime/package.json
npm@ixo/sqlite-saverworkspace:*packages/oracle-runtime/package.json
npm@ixo/ucanworkspace:*packages/oracle-runtime/package.json
npm@langchain/core1.1.48packages/oracle-runtime/package.json
npm@langchain/langgraph1.3.2packages/oracle-runtime/package.json
npm@langchain/mcp-adapters1.1.3packages/oracle-runtime/package.json
npm@nestjs/bullmq^11.0.4packages/oracle-runtime/package.json
npm@nestjs/cache-manager^3.1.2packages/oracle-runtime/package.json
npm@nestjs/common^11.1.19packages/oracle-runtime/package.json
npm@nestjs/config^4.0.4packages/oracle-runtime/package.json
npm@nestjs/core^11.1.19packages/oracle-runtime/package.json
npm@nestjs/platform-express^11.1.19packages/oracle-runtime/package.json
npm@nestjs/platform-socket.io^11.1.19packages/oracle-runtime/package.json
npm@nestjs/schedule^6.1.3packages/oracle-runtime/package.json
npm@nestjs/swagger^11.4.2packages/oracle-runtime/package.json
npm@nestjs/throttler^6.5.0packages/oracle-runtime/package.json
npm@nestjs/websockets^11.1.19packages/oracle-runtime/package.json
npmbetter-sqlite3^12.9.0packages/oracle-runtime/package.json
npmbullmq^5.76.2packages/oracle-runtime/package.json
npmcache-manager^7.2.4packages/oracle-runtime/package.json
npmclass-transformer^0.5.1packages/oracle-runtime/package.json
npmclass-validator^0.14.1packages/oracle-runtime/package.json
npmcron-parser^5.5.0packages/oracle-runtime/package.json
npmgray-matter^4.0.3packages/oracle-runtime/package.json
npmioredis^5.10.1packages/oracle-runtime/package.json
npmjs-tiktoken^1.0.21packages/oracle-runtime/package.json
npmlangchain1.4.2packages/oracle-runtime/package.json
npmmatrix-js-sdk^37.11.0packages/oracle-runtime/package.json
npmnode-emoji^2.2.0packages/oracle-runtime/package.json
npmsocket.io4.8.3packages/oracle-runtime/package.json
npmyjs^13.6.27packages/oracle-runtime/package.json
npmzod^4.4.3packages/oracle-runtime/package.json
npm@cosmjs/crypto0.39.0packages/oracles-chain-client/package.json
npm@cosmjs/encoding0.39.0packages/oracles-chain-client/package.json
npm@cosmjs/proto-signing0.39.0packages/oracles-chain-client/package.json
npm@cosmjs/stargate0.39.0packages/oracles-chain-client/package.json
npm@ixo/did-provider-x^0.1.1packages/oracles-chain-client/package.json
npm@ixo/impactxclient-sdk3.0.0packages/oracles-chain-client/package.json
npm@ixo/loggerworkspace:*packages/oracles-chain-client/package.json
npm@ixo/matrixclient-sdk^3.0.0packages/oracles-chain-client/package.json
npm@ixo/ucanworkspace:*packages/oracles-chain-client/package.json
npm@veramo/core^7.0.0packages/oracles-chain-client/package.json
npm@veramo/credential-ld^7.0.0packages/oracles-chain-client/package.json
npm@veramo/credential-w3c^7.0.0packages/oracles-chain-client/package.json
npm@veramo/did-manager^7.0.0packages/oracles-chain-client/package.json
npm@veramo/did-provider-key^7.0.0packages/oracles-chain-client/package.json
npm@veramo/did-resolver^7.0.0packages/oracles-chain-client/package.json
npm@veramo/key-manager^7.0.0packages/oracles-chain-client/package.json
npm@veramo/kms-local^7.0.0packages/oracles-chain-client/package.json
npmajv8.17.1packages/oracles-chain-client/package.json
npmajv-formats3.0.1packages/oracles-chain-client/package.json
npmaxios1.18.1packages/oracles-chain-client/package.json
npmaxios-retry4.5.0packages/oracles-chain-client/package.json
npmbs58^6.0.0packages/oracles-chain-client/package.json
npmdid-resolver4.1.0packages/oracles-chain-client/package.json
npmdotenv^17.2.3packages/oracles-chain-client/package.json
npmeciesjs^0.4.15packages/oracles-chain-client/package.json
npmgraphql^16.10.0packages/oracles-chain-client/package.json
npmgraphql-request7.1.2packages/oracles-chain-client/package.json
npmgraphql-tag^2.12.6packages/oracles-chain-client/package.json
npmjose^6.0.8packages/oracles-chain-client/package.json
npmlimiter2.1.0packages/oracles-chain-client/package.json
npmstore2.0.12packages/oracles-chain-client/package.json
npmzod^4.3.6packages/oracles-chain-client/package.json
npm@ixo/oracles-chain-clientworkspace:*packages/oracles-client-sdk/package.json
npm@ixo/oracles-eventsworkspace:*packages/oracles-client-sdk/package.json
npm@tanstack/react-query^5.29.0packages/oracles-client-sdk/package.json
npmeventsource^3.0.6packages/oracles-client-sdk/package.json
npmjose^6.1.0packages/oracles-client-sdk/package.json
npmlivekit-client^2.15.6packages/oracles-client-sdk/package.json
npmsocket.io-client^4.8.1packages/oracles-client-sdk/package.json
npmzod-to-json-schema^3.24.5packages/oracles-client-sdk/package.json
npm@ixo/loggerworkspace:*packages/slack/package.json
npm@slack/bolt^4.6.0packages/slack/package.json
npm@tryfabric/mack^1.2.1packages/slack/package.json
npmslackify-markdown5.0.0packages/slack/package.json
npm@ixo/loggerworkspace:*packages/sqlite-saver/package.json
npm@langchain/core1.1.48packages/sqlite-saver/package.json
npm@langchain/langgraph-checkpoint1.0.2packages/sqlite-saver/package.json
npmbetter-sqlite3^11.10.0packages/sqlite-saver/package.json
npm@ucanto/client9.0.2packages/ucan/package.json
npm@ucanto/core10.4.6packages/ucan/package.json
npm@ucanto/interface11.0.1packages/ucan/package.json
npm@ucanto/principal9.0.3packages/ucan/package.json
npm@ucanto/server11.0.3packages/ucan/package.json
npm@ucanto/transport9.2.1packages/ucan/package.json
npm@ucanto/validator10.0.1packages/ucan/package.json
npmvitest^3.2.3packages/vitest-config/package.json
npm@vitest/coverage-v8^3.2.3packages/vitest-config/package.json
npmunplugin-swc^1.5.9packages/vitest-config/package.json
All dependencies not collected

The resolved dependency set could not be collected for this report: GitHub dependency-graph SBOM unavailable (404); the dependency graph may be disabled for this repository

Dependency advisories 0

Installing npm:@ixo/ucan@2.1.0 pulls in 20 packages, direct and transitive: 0 carry known advisories, of which 0 are direct dependencies.

No known advisories affect the assessed dependencies.

An advisory means the version recorded in the dependency graph falls inside an advisory’s affected range. Reachability is not analysed, and the graph includes development and test pins — a finding may concern tooling rather than shipped software.

Raw JSON report machine-readable
{
  "data": {
    "repo": {
      "topics": [
        "agentic-ai",
        "ixo"
      ],
      "is_fork": false,
      "size_kb": 9531,
      "has_wiki": false,
      "homepage": "https://www.ixo.world/",
      "languages": {
        "HTML": 20058,
        "Shell": 6447,
        "Dockerfile": 2175,
        "JavaScript": 7080,
        "TypeScript": 5249026
      },
      "pushed_at": "2026-07-26T04:47:27Z",
      "created_at": "2025-01-08T20:13:38Z",
      "owner_type": "Organization",
      "updated_at": "2026-07-24T04:43:48Z",
      "description": "A powerful framework for building and deploying Agentic Oracles on the IXO network. Built on LangGraph, Matrix, and NestJS, this framework enables developers to create intelligent oracles with secure communication, complex conversation flows, and automatic marketplace integration.",
      "is_archived": false,
      "is_disabled": false,
      "license_spdx": "Apache-2.0",
      "default_branch": "main",
      "license_spdx_raw": "Apache-2.0",
      "primary_language": "TypeScript",
      "significant_languages": [
        "TypeScript"
      ]
    },
    "owner": {
      "blog": "https://ixo.world",
      "name": "IXO World",
      "type": "Organization",
      "login": "ixoworld",
      "company": null,
      "location": "Liechtenstein",
      "followers": 9,
      "avatar_url": "https://avatars.githubusercontent.com/u/44832920?v=4",
      "created_at": "2018-11-07T08:57:54Z",
      "is_verified": null,
      "public_repos": 28,
      "account_age_days": 2817
    },
    "license": {
      "state": "standard",
      "spdx_id": "Apache-2.0",
      "raw_spdx": "Apache-2.0",
      "file_present": true,
      "scorecard_found": true,
      "profile_has_license": true
    },
    "activity": {
      "releases": [
        {
          "tag": "@ixo/sqlite-saver@1.0.55",
          "kind": "other",
          "published_at": "2026-07-19T15:16:43Z"
        },
        {
          "tag": "@ixo/oracles-client-sdk@1.3.3",
          "kind": "other",
          "published_at": "2026-07-19T15:16:40Z"
        },
        {
          "tag": "@ixo/oracles-chain-client@2.0.1",
          "kind": "other",
          "published_at": "2026-07-10T11:33:48Z"
        },
        {
          "tag": "@ixo/oracles-client-sdk@1.3.2",
          "kind": "other",
          "published_at": "2026-07-10T11:33:45Z"
        },
        {
          "tag": "@ixo/oracles-client-sdk@1.3.1",
          "kind": "other",
          "published_at": "2026-07-08T07:34:57Z"
        },
        {
          "tag": "@ixo/oracles-client-sdk@1.3.0",
          "kind": "other",
          "published_at": "2026-07-08T04:25:06Z"
        },
        {
          "tag": "@ixo/oracles-chain-client@2.0.0",
          "kind": "other",
          "published_at": "2026-07-08T04:25:03Z"
        },
        {
          "tag": "@ixo/common@1.2.0",
          "kind": "other",
          "published_at": "2026-07-08T04:25:00Z"
        },
        {
          "tag": "@ixo/oracles-events@2.0.0",
          "kind": "other",
          "published_at": "2026-07-08T04:24:57Z"
        },
        {
          "tag": "@ixo/sqlite-saver@1.0.54",
          "kind": "other",
          "published_at": "2026-06-16T06:26:11Z"
        },
        {
          "tag": "@ixo/common@1.1.43",
          "kind": "other",
          "published_at": "2026-06-16T06:26:08Z"
        },
        {
          "tag": "@ixo/oracles-client-sdk@1.2.2",
          "kind": "other",
          "published_at": "2026-06-10T17:57:04Z"
        },
        {
          "tag": "@ixo/oracles-chain-client@1.3.2",
          "kind": "other",
          "published_at": "2026-06-10T17:57:01Z"
        },
        {
          "tag": "@ixo/oracles-client-sdk@1.2.1",
          "kind": "other",
          "published_at": "2026-06-09T17:57:48Z"
        },
        {
          "tag": "@ixo/common@1.1.42",
          "kind": "other",
          "published_at": "2026-06-03T19:28:36Z"
        },
        {
          "tag": "@ixo/oracles-chain-client@1.3.1",
          "kind": "other",
          "published_at": "2026-06-03T19:28:33Z"
        },
        {
          "tag": "@ixo/oracles-chain-client@1.3.0",
          "kind": "other",
          "published_at": "2026-06-02T16:19:27Z"
        },
        {
          "tag": "@ixo/sqlite-saver@1.0.53",
          "kind": "other",
          "published_at": "2026-06-01T20:44:17Z"
        },
        {
          "tag": "@ixo/oracles-events@1.0.5",
          "kind": "other",
          "published_at": "2026-06-01T20:44:14Z"
        },
        {
          "tag": "@ixo/oracles-client-sdk@1.2.0",
          "kind": "other",
          "published_at": "2026-06-01T20:44:11Z"
        },
        {
          "tag": "@ixo/oracles-chain-client@1.2.3",
          "kind": "other",
          "published_at": "2026-06-01T19:38:50Z"
        },
        {
          "tag": "@ixo/matrix@1.2.33",
          "kind": "other",
          "published_at": "2026-05-11T11:25:40Z"
        },
        {
          "tag": "@ixo/common@1.1.41",
          "kind": "other",
          "published_at": "2026-05-06T08:56:05Z"
        },
        {
          "tag": "@ixo/matrix@1.2.32",
          "kind": "other",
          "published_at": "2026-05-06T05:38:26Z"
        },
        {
          "tag": "@ixo/common@1.1.40",
          "kind": "other",
          "published_at": "2026-05-04T13:40:02Z"
        },
        {
          "tag": "@ixo/matrix@1.2.31",
          "kind": "other",
          "published_at": "2026-05-04T13:39:59Z"
        },
        {
          "tag": "@ixo/common@1.1.39",
          "kind": "other",
          "published_at": "2026-04-30T06:42:14Z"
        },
        {
          "tag": "@ixo/common@1.1.38",
          "kind": "other",
          "published_at": "2026-04-29T10:23:47Z"
        },
        {
          "tag": "@ixo/common@1.1.37",
          "kind": "other",
          "published_at": "2026-04-24T04:28:59Z"
        },
        {
          "tag": "@ixo/oracles-client-sdk@1.1.34",
          "kind": "other",
          "published_at": "2026-04-22T05:56:42Z"
        },
        {
          "tag": "@ixo/common@1.1.36",
          "kind": "other",
          "published_at": "2026-03-25T08:19:22Z"
        },
        {
          "tag": "@ixo/matrix@1.2.3",
          "kind": "other",
          "published_at": "2026-03-25T08:19:19Z"
        },
        {
          "tag": "@ixo/oracles-client-sdk@1.1.33",
          "kind": "other",
          "published_at": "2026-03-25T06:29:31Z"
        },
        {
          "tag": "@ixo/oracles-chain-client@1.2.2",
          "kind": "other",
          "published_at": "2026-03-25T06:29:28Z"
        },
        {
          "tag": "@ixo/common@1.1.35",
          "kind": "other",
          "published_at": "2026-03-24T12:36:30Z"
        },
        {
          "tag": "@ixo/oracles-client-sdk@1.1.32",
          "kind": "other",
          "published_at": "2026-03-24T12:36:27Z"
        },
        {
          "tag": "@ixo/common@1.1.34",
          "kind": "other",
          "published_at": "2026-03-16T11:07:31Z"
        },
        {
          "tag": "@ixo/common@1.1.33",
          "kind": "other",
          "published_at": "2026-03-10T11:34:12Z"
        },
        {
          "tag": "@ixo/oracles-chain-client@1.2.1",
          "kind": "other",
          "published_at": "2026-03-04T12:05:14Z"
        },
        {
          "tag": "@ixo/oracles-client-sdk@1.1.31",
          "kind": "other",
          "published_at": "2026-03-03T15:34:36Z"
        },
        {
          "tag": "@ixo/common@1.1.32",
          "kind": "other",
          "published_at": "2026-03-03T15:34:33Z"
        },
        {
          "tag": "@ixo/sqlite-saver@1.0.52",
          "kind": "other",
          "published_at": "2026-03-03T15:34:30Z"
        },
        {
          "tag": "@ixo/oracles-events@1.0.4",
          "kind": "other",
          "published_at": "2026-03-02T13:45:29Z"
        },
        {
          "tag": "@ixo/common@1.1.3",
          "kind": "other",
          "published_at": "2026-03-02T08:36:41Z"
        },
        {
          "tag": "@ixo/common@1.1.2",
          "kind": "other",
          "published_at": "2026-02-28T05:42:38Z"
        },
        {
          "tag": "@ixo/matrix@1.2.2",
          "kind": "other",
          "published_at": "2026-02-28T05:14:29Z"
        },
        {
          "tag": "@ixo/common@1.1.1",
          "kind": "other",
          "published_at": "2026-02-26T09:39:40Z"
        },
        {
          "tag": "@ixo/oracles-client-sdk@1.1.2",
          "kind": "other",
          "published_at": "2026-02-23T07:21:03Z"
        },
        {
          "tag": "@ixo/sqlite-saver@1.0.5",
          "kind": "other",
          "published_at": "2026-02-21T07:19:43Z"
        },
        {
          "tag": "@ixo/matrix@1.2.1",
          "kind": "other",
          "published_at": "2026-02-18T09:59:36Z"
        },
        {
          "tag": "@ixo/matrix@1.2.0",
          "kind": "other",
          "published_at": "2026-02-14T09:32:19Z"
        },
        {
          "tag": "@ixo/oracles-events@1.0.3",
          "kind": "other",
          "published_at": "2026-02-12T12:53:46Z"
        },
        {
          "tag": "@ixo/common@1.1.0",
          "kind": "other",
          "published_at": "2026-02-12T11:02:08Z"
        },
        {
          "tag": "@ixo/sqlite-saver@1.0.4",
          "kind": "other",
          "published_at": "2026-02-12T11:02:05Z"
        },
        {
          "tag": "@ixo/data-store@1.0.1",
          "kind": "other",
          "published_at": "2026-02-12T11:02:02Z"
        },
        {
          "tag": "@ixo/matrix@1.1.0",
          "kind": "other",
          "published_at": "2026-02-12T11:01:59Z"
        },
        {
          "tag": "@ixo/oracles-client-sdk@1.1.1",
          "kind": "other",
          "published_at": "2026-02-11T14:02:29Z"
        },
        {
          "tag": "@ixo/oracles-chain-client@1.2.0",
          "kind": "other",
          "published_at": "2026-02-11T07:16:57Z"
        },
        {
          "tag": "@ixo/oracles-client-sdk@1.1.0",
          "kind": "other",
          "published_at": "2026-02-11T07:16:54Z"
        },
        {
          "tag": "@ixo/oracles-client-sdk@1.0.13",
          "kind": "other",
          "published_at": "2026-01-21T11:27:07Z"
        },
        {
          "tag": "@ixo/oracles-chain-client@1.1.4",
          "kind": "other",
          "published_at": "2026-01-21T11:27:04Z"
        },
        {
          "tag": "@ixo/oracles-client-sdk@1.0.12",
          "kind": "other",
          "published_at": "2026-01-21T10:35:34Z"
        },
        {
          "tag": "@ixo/ucan@1.0.1",
          "kind": "other",
          "published_at": "2025-12-16T10:22:44Z"
        },
        {
          "tag": "@ixo/ucan@1.0.0",
          "kind": "other",
          "published_at": "2025-12-10T12:31:38Z"
        },
        {
          "tag": "@ixo/oracles-client-sdk@1.0.11",
          "kind": "other",
          "published_at": "2025-12-08T11:44:46Z"
        },
        {
          "tag": "app@1.1.76",
          "kind": "other",
          "published_at": "2025-12-08T11:44:43Z"
        },
        {
          "tag": "@ixo/oracles-chain-client@1.1.3",
          "kind": "other",
          "published_at": "2025-12-08T11:44:40Z"
        },
        {
          "tag": "@ixo/oracles-client-sdk@1.0.9",
          "kind": "other",
          "published_at": "2025-11-27T15:31:03Z"
        },
        {
          "tag": "app@1.1.0",
          "kind": "other",
          "published_at": "2025-11-27T09:26:05Z"
        },
        {
          "tag": "@ixo/oracles-client-sdk@1.0.8",
          "kind": "other",
          "published_at": "2025-11-27T09:26:02Z"
        },
        {
          "tag": "app@1.0.1",
          "kind": "other",
          "published_at": "2025-11-24T11:51:12Z"
        },
        {
          "tag": "@ixo/oracles-client-sdk@1.0.7",
          "kind": "other",
          "published_at": "2025-11-19T07:16:14Z"
        },
        {
          "tag": "@ixo/oracles-client-sdk@1.0.6",
          "kind": "other",
          "published_at": "2025-11-13T15:34:31Z"
        },
        {
          "tag": "@ixo/oracles-client-sdk@1.0.4",
          "kind": "other",
          "published_at": "2025-11-06T11:36:34Z"
        },
        {
          "tag": "@ixo/oracles-client-sdk@1.0.3",
          "kind": "other",
          "published_at": "2025-10-23T12:30:30Z"
        },
        {
          "tag": "@ixo/oracles-client-sdk@1.0.2",
          "kind": "other",
          "published_at": "2025-10-22T16:20:20Z"
        },
        {
          "tag": "@ixo/oracles-client-sdk@1.0.1",
          "kind": "other",
          "published_at": "2025-10-21T12:59:30Z"
        },
        {
          "tag": "@ixo/oracles-events@1.0.2",
          "kind": "other",
          "published_at": "2025-10-17T16:35:26Z"
        },
        {
          "tag": "@ixo/oracles-chain-client@1.1.1",
          "kind": "other",
          "published_at": "2025-10-17T16:35:23Z"
        },
        {
          "tag": "@ixo/oracles-client-sdk@1.0.0",
          "kind": "other",
          "published_at": "2025-10-16T12:28:42Z"
        },
        {
          "tag": "@ixo/oracles-client-sdk@0.2.2",
          "kind": "other",
          "published_at": "2025-09-11T16:12:35Z"
        },
        {
          "tag": "@ixo/oracles-client-sdk@0.2.1",
          "kind": "other",
          "published_at": "2025-09-10T20:09:42Z"
        },
        {
          "tag": "@ixo/oracles-client-sdk@0.2.0",
          "kind": "other",
          "published_at": "2025-09-05T20:53:17Z"
        },
        {
          "tag": "@ixo/oracles-chain-client@1.1.0",
          "kind": "other",
          "published_at": "2025-09-05T20:53:14Z"
        },
        {
          "tag": "app@0.2.0",
          "kind": "other",
          "published_at": "2025-09-05T20:53:12Z"
        },
        {
          "tag": "@ixo/oracles-chain-client@1.0.16",
          "kind": "other",
          "published_at": "2025-08-20T18:43:26Z"
        },
        {
          "tag": "@ixo/oracles-client-sdk@0.1.25",
          "kind": "other",
          "published_at": "2025-08-13T18:03:36Z"
        },
        {
          "tag": "@ixo/oracles-client-sdk@0.1.24",
          "kind": "other",
          "published_at": "2025-08-11T19:59:29Z"
        },
        {
          "tag": "@ixo/oracles-chain-client@1.0.15",
          "kind": "other",
          "published_at": "2025-08-06T14:06:22Z"
        },
        {
          "tag": "@ixo/oracles-client-sdk@0.1.23",
          "kind": "other",
          "published_at": "2025-08-06T14:06:19Z"
        },
        {
          "tag": "@ixo/oracles-events@1.0.1",
          "kind": "other",
          "published_at": "2025-08-06T14:06:16Z"
        },
        {
          "tag": "app@0.1.14",
          "kind": "other",
          "published_at": "2025-08-06T14:06:13Z"
        },
        {
          "tag": "@ixo/oracles-client-sdk@0.1.22",
          "kind": "other",
          "published_at": "2025-08-01T16:22:15Z"
        },
        {
          "tag": "app@0.1.13",
          "kind": "other",
          "published_at": "2025-07-27T15:19:53Z"
        },
        {
          "tag": "@ixo/oracles-client-sdk@0.1.21",
          "kind": "other",
          "published_at": "2025-07-23T18:25:15Z"
        },
        {
          "tag": "@ixo/oracles-client-sdk@0.1.20",
          "kind": "other",
          "published_at": "2025-07-23T17:25:23Z"
        },
        {
          "tag": "@ixo/oracles-client-sdk@0.1.19",
          "kind": "other",
          "published_at": "2025-07-22T22:08:31Z"
        },
        {
          "tag": "@ixo/oracles-client-sdk@0.1.18",
          "kind": "other",
          "published_at": "2025-06-18T07:18:59Z"
        },
        {
          "tag": "@ixo/oracles-client-sdk@0.1.17",
          "kind": "other",
          "published_at": "2025-06-16T19:28:33Z"
        },
        {
          "tag": "@ixo/oracles-chain-client@1.0.14",
          "kind": "other",
          "published_at": "2025-06-16T18:46:15Z"
        }
      ],
      "recent_commits": [
        {
          "oid": "3ec4b54ef39c913744436309c83e8b95f351901a",
          "body": "feat(oracle-runtime): per-DID selective LangSmith tracing",
          "is_bot": false,
          "headline": "Merge pull request #238 from ixoworld/feat/langsmith-selective-tracing",
          "author_name": "Michael-Ixo",
          "author_login": "Michael-Ixo",
          "committed_at": "2026-07-24T04:43:43Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f439b375b2e8535b43d703376135a302b0858966",
          "body": "… 1.4.0\n\nNew LANGSMITH_TRACED_DIDS env allowlist traces only the listed user DIDs\n(or '*' for everyone) without enabling the global LANGSMITH_TRACING\nswitch. An explicitly attached LangChainTracer uploads regardless of the\nenv flag, which is what makes per-user tracing possible; the decision is\nmade\n[…]\nent).\n\nVerified: 970/970 unit tests, typecheck, lint; live-tested against devnet\nwith a real traced turn landing in LangSmith with correct metadata.\n\nAuthored by: Michael Pretorius <michael@ixo.world>",
          "is_bot": false,
          "headline": "feat(oracle-runtime): per-DID selective LangSmith tracing and bump to…",
          "author_name": "Michael Pretorius",
          "author_login": "Michael-Ixo",
          "committed_at": "2026-07-24T04:32:51Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "0495ef86473a0fa95367af1b3fa9f0767d3e9cf8",
          "body": "…improvements (#236)\n\n- Updated version in package.json for @ixo/oracle-runtime to 1.3.9.\n- Enhanced AGUIPlugin and PortalPlugin to handle JSON-pointer references in schemas, allowing for better schema resolution and error handling.\n- Introduced new utility functions for inlining local JSON-pointer \n[…]\nensure correct behavior for schemas with repeated subschemas and unconvertible schemas.\n- Updated useSendMessage hook in oracles-client-sdk to support new JSON schema options for better compatibility.",
          "is_bot": false,
          "headline": "chore(oracle-runtime): bump version to 1.3.9 and add schema handling …",
          "author_name": "Youssef Hany",
          "author_login": "youssefhany-ixo",
          "committed_at": "2026-07-22T13:21:39Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "19f4dbc1213f65dc5257c1441a8227177ecc30c9",
          "body": "…ons (#235)\n\n* fix(ucan): claim the granted ability, not `*`, on downstream invocations\n\nThe portal delegates `{ can: 'subscriptions/read', with: 'ixo:subscriptions' }`\nbut `mintInvocationForServiceDid` hardcoded `can: '*'`. ucanto resolves a claim\nagainst a proof only when the delegated ability is \n[…]\ny-engine-graphiti#40 and the\ncomposio-worker session route.\n\nTests updated to assert the ability is passed rather than dropped.\n\nRefs ORA-364\n\n* chore(oracle-runtime): bump version from 1.3.7 to 1.3.8",
          "is_bot": false,
          "headline": "fix(ucan): claim the granted ability, not `*`, on downstream invocati…",
          "author_name": "Youssef Hany",
          "author_login": "youssefhany-ixo",
          "committed_at": "2026-07-22T11:05:04Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "cf21fbab90d7b1e50fdd7d238ecc05375c25f8b4",
          "body": "…cross-signing at startup (#233)",
          "is_bot": false,
          "headline": "feat(matrix): bump @ixo/matrix-bot-sdk to 0.8.0-ixo.14 and bootstrap …",
          "author_name": "Michael-Ixo",
          "author_login": "Michael-Ixo",
          "committed_at": "2026-07-21T17:36:52Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4dccc61b445eb4f4f1eefda28cf5dded7547c489",
          "body": null,
          "is_bot": false,
          "headline": "chore: pumb to get the ucan fix (#232)",
          "author_name": "Youssef Hany",
          "author_login": "youssefhany-ixo",
          "committed_at": "2026-07-20T07:01:32Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9ecd626c5b1b9551b3da076fa44362cc99bfa9ba",
          "body": "…verification\n\nfix(ucan): verify the whole proof chain under wildcard root issuers",
          "is_bot": false,
          "headline": "Merge pull request #231 from ixoworld/feat/ucan-wildcard-proof-chain-…",
          "author_name": "Michael-Ixo",
          "author_login": "Michael-Ixo",
          "committed_at": "2026-07-20T04:48:01Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0845d21dc7657b6b8a5d817aa7d080659969d663",
          "body": "Replace the changeset-driven release with an explicit version bump in\npackage.json (2.0.1 -> 2.1.0) for the wildcard proof-chain verification\nfix, and remove the changeset file.\n\nAuthored by: Michael Pretorius <michael@ixo.world>",
          "is_bot": false,
          "headline": "chore(ucan): bump @ixo/ucan to 2.1.0 directly and drop the changeset",
          "author_name": "Michael Pretorius",
          "author_login": "Michael-Ixo",
          "committed_at": "2026-07-20T04:42:06Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6ba088b8d65a8377b6c5d50a3d541b53d34237ce",
          "body": "Close a proof-chain forgery in the validator when `rootIssuers: ['*']`.\nWildcard mode used to make ucanto's `canIssue` return true for the\ninvocation's own issuer, so an invocation was authorized on its own\nsignature alone and the attached delegation proofs were never walked or\ncryptographically ver\n[…]\nhain,\nlegit 3-hop, expired-in-chain, replay, stapled-unrelated-proof\nfail-closed, multi-key did:ixo root, and wildcard combined with explicit\nroots.\n\nAuthored by: Michael Pretorius <michael@ixo.world>",
          "is_bot": false,
          "headline": "fix(ucan): verify the whole proof chain under wildcard root issuers",
          "author_name": "Michael Pretorius",
          "author_login": "Michael-Ixo",
          "committed_at": "2026-07-20T04:22:57Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "d706c9b53affe109275a16252dfb34901b208310",
          "body": "* feat(runtime,sdk): user-selectable models with cost-tiered catalog\n\nLet end users pick which LLM answers a message, like the ChatGPT/Claude\nmodel switcher, with a simple $/$$/$$$ cost cue.\n\nRuntime (@ixo/oracle-runtime):\n- Curated model catalog (src/llm/model-catalog.ts) spanning OpenAI,\n  Google,\n[…]\naded performance.\n- Added tests to verify the new attachment handling and SSE behavior, ensuring robust functionality across message streams.\n\n---------\n\nCo-authored-by: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "Add model selection: catalog, pricing, and GET /models endpoint (#229)",
          "author_name": "Youssef Hany",
          "author_login": "youssefhany-ixo",
          "committed_at": "2026-07-19T15:15:14Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "c9506517a90286ffa9670e5f9c47c582d4b57ac4",
          "body": "…nd upstream tool-def caches (#227)\n\n* perf(runtime): cut per-turn agent-build latency with parallel hooks and upstream tool-def caches\n\nPer-turn latency of personal-agent responses was dominated by serial\nnetwork I/O before the LLM call ever started:\n\n- every plugin's getRequestTools/getRequestSubA\n[…]\n every user that\never sent a turn. Each cache write now sweeps expired entries and enforces\na hard cap (soonest-to-expire evicted first), bounding the cache to users\nactive within the last TTL window.",
          "is_bot": false,
          "headline": "perf(runtime): cut per-turn agent-build latency with parallel hooks a…",
          "author_name": "Shaun Conway",
          "author_login": "ig-shaun",
          "committed_at": "2026-07-18T10:48:38Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "385d15f08dff2495717638dc49eee4d3ece34ce2",
          "body": "* fix(token-limiter): standardize markup value for token cost calculations\n\nRemoved conditional markup based on network type, setting a fixed markup value of 1.6 for all token cost calculations in the TokenLimiter class. This change simplifies the pricing logic and ensures consistent cost computation across different networks.\n\n* chore: bump version to 1.3.5 in package.json for oracle-runtime",
          "is_bot": false,
          "headline": "Feat/match prod markup for lower envs (#226)",
          "author_name": "Youssef Hany",
          "author_login": "youssefhany-ixo",
          "committed_at": "2026-07-16T07:48:47Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0e5513cce6b36eea3bb612bd6792f5bffd960d89",
          "body": "…ers (IXO-3650) (#225)\n\nsignerFromMnemonic() derived its Ed25519 keypair via @cosmjs/crypto's\nEd25519.makeKeypair(), which is backed by libsodium (WASM). libsodium's\nmodule loader locates its .wasm by sniffing for browser globals\n(document/location.href) or Node globals; workerd is neither, so it\nde\n[…]\nNG attachments. Same on-chain Ed25519\n  verification method, zero signature changes.\n\nConsumers that only validate are unaffected.\n\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(ucan): derive mnemonic signer in pure JS so minting works on Work…",
          "author_name": "Youssef Hany",
          "author_login": "youssefhany-ixo",
          "committed_at": "2026-07-15T07:47:40Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "e04e206418cad6854fdf4e1eb4368be525c67cf6",
          "body": "…on (#223)\n\n- Updated package version in package.json from 1.3.3 to 1.3.4.\n- Added MINIMUM_CLAIM_THRESHOLD configuration option to ClaimProcessingConfig for better control over claim settlement thresholds.\n- Refactored claim processing service to utilize a default minimum claim threshold and improved logging for claim processing steps.",
          "is_bot": false,
          "headline": "chore: bump version to 1.3.4 and enhance claim processing configurati…",
          "author_name": "Youssef Hany",
          "author_login": "youssefhany-ixo",
          "committed_at": "2026-07-13T08:45:51Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b8722218d62de6bd56bf5baacd0ccc0810d5fbee",
          "body": "feat: dedupe entity fetches, gate empty-DID queries, staleTime + queryClient injection",
          "is_bot": false,
          "headline": "Merge pull request #220 from ixoworld/feat/oracle-query-caching",
          "author_name": "Michael-Ixo",
          "author_login": "Michael-Ixo",
          "committed_at": "2026-07-10T11:32:46Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "dc6178f580cee3de2d94a34eff5e77d7229437d1",
          "body": "…queryClient injection\n\nAuthored by: Michael Pretorius <michael@ixo.world>",
          "is_bot": false,
          "headline": "feat: dedupe entity fetches, gate empty-DID queries, add staleTime + …",
          "author_name": "Michael Pretorius",
          "author_login": "Michael-Ixo",
          "committed_at": "2026-07-10T11:17:06Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d8abeacca622bf341b292a06817c640ed6530952",
          "body": "…iles (#219)\n\n* Update pnpm-lock.yaml and package.json for dependency management\n\n- Updated @ixo/editor version in package.json to point to a local tarball for compatibility with the latest features.\n- Adjusted pnpm-lock.yaml to reflect new versions for various dependencies, including the addition o\n[…]\negration with existing services.\n\n* chore: remove outdated oracles client SDK tarball\n\n- Deleted the ixo-oracles-client-sdk-1.2.3.tgz file as it is no longer needed in the project.\n\n* chore: formating",
          "is_bot": false,
          "headline": "Feature/ora 315 vfs integration oracle agents read write share user f…",
          "author_name": "Youssef Hany",
          "author_login": "youssefhany-ixo",
          "committed_at": "2026-07-10T06:00:13Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "c34c3cfe96b4700aa416f98cd77de19dbd481f35",
          "body": "* Update pnpm-lock.yaml and package.json for dependency management\n\n- Updated @ixo/editor version in package.json to point to a local tarball for compatibility with the latest features.\n- Adjusted pnpm-lock.yaml to reflect new versions for various dependencies, including the addition of expo and rea\n[…]\neters to include actor type and pin, ensuring compatibility with the current authorization model.\n- Enhanced comments for clarity on the execution process and authorization checks.\n\n* chore: formating",
          "is_bot": false,
          "headline": "ora-291-delegated-integration-blocks-run-flows-using-the-template (#217)",
          "author_name": "Youssef Hany",
          "author_login": "youssefhany-ixo",
          "committed_at": "2026-07-08T07:33:46Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "2a1a0110a9c730e755d6fc17c4a86e8769585043",
          "body": "…ucan\n\nfeat: modernize deps, tree-shakeable ESM, matrix UCAN auth",
          "is_bot": false,
          "headline": "Merge pull request #218 from ixoworld/feat/deps-modernization-matrix-…",
          "author_name": "Michael-Ixo",
          "author_login": "Michael-Ixo",
          "committed_at": "2026-07-08T04:23:55Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d942bc2bde1a1f534d9e0e55c8b9db8758cf15c6",
          "body": "- chain-client: matrix bot auth OpenID -> UCAN (self-issued invocation\n  signed with derived claim-signing mnemonic); axios 1.18.1; SDK 3.0.0,\n  cosmjs 0.39, matrixclient-sdk 3.0.0, did-provider-x 0.1.1\n- ucan: peer @cosmjs/* >=0.39.0\n- events: CJS -> ESM (type:module, .js import extensions)\n- sideE\n[…]\nle fields corrected\n- security: form-data override (fixes critical via matrix-bot-sdk fork)\n- bump: ucan 2.0.0, chain-client 2.0.0, events 2.0.0, client-sdk 1.3.0,\n  common 1.2.0, oracle-runtime 1.3.0",
          "is_bot": false,
          "headline": "feat: modernize deps, tree-shakeable ESM, matrix UCAN auth",
          "author_name": "Michael Pretorius",
          "author_login": "Michael-Ixo",
          "committed_at": "2026-07-08T04:17:02Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "629efb01c0b3fcc872e2a99fcf1f9716e6a858a4",
          "body": "…ng (#216)\n\n* perf(runtime): flag-gated request-path caches + configurable reasoning effort\n\nLatency work for the chat request path. All caches default OFF so behaviour\nis byte-identical until explicitly enabled, letting each win be measured in\nisolation.\n\n- CACHE_CHECKPOINTER_SAVER: reuse a per-use\n[…]\n comparison table layout for improved readability.\n- Adjusted wording in the durable UI events section to maintain consistent emphasis style.\n\n---------\n\nCo-authored-by: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "Add memory compaction, request-path caches, and reasoning effort tuni…",
          "author_name": "Youssef Hany",
          "author_login": "youssefhany-ixo",
          "committed_at": "2026-07-06T11:15:26Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "a138c007863e1a6961eb42be8b36b223d3260c03",
          "body": "* feat(runtime): allow forks to override plugin manifest settings\n\nAdds a manifestOverrides option to createOracleApp (and createTestRuntime)\nso a fork can retune a bundled plugin's manifest — most usefully its\nvisibility (always/on-demand/silent) — without forking the plugin source.\n\nOverrides are \n[…]\nin are logged and ignored.\n\n* chore(runtime): bump @ixo/oracle-runtime to 1.2.0\n\nMinor bump for the additive manifestOverrides API (ORA-285).\n\n---------\n\nCo-authored-by: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(runtime): allow forks to override plugin manifest settings (#215)",
          "author_name": "Youssef Hany",
          "author_login": "youssefhany-ixo",
          "committed_at": "2026-06-26T18:32:47Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "d66635012710be4f85d5ade94ae80b7ffc7f45e7",
          "body": "* feat(flows): add flow-builder plugin (read, author, edit, forms)\n\nA new bundled plugin that lets an agent build, wire, inspect, and\nform-fill multi-step action flows on top of the @ixo/editor Qi Flow\nengine. The agent authors flows; the user runs them in the portal —\nthere is no execution, signing\n[…]\n build script in package.json to filter out the app directory during the build process, optimizing the build configuration.\n- Reordered imports in tasks.module.ts for improved clarity and consistency.",
          "is_bot": false,
          "headline": "Feat/flows plugin (#214)",
          "author_name": "Youssef Hany",
          "author_login": "youssefhany-ixo",
          "committed_at": "2026-06-26T04:41:31Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "0bef3921b93fda7f73f12ecda1d9cb496c6cece1",
          "body": "* docs(tasks): clean-sheet rebuild spec for the async tasks plugin\n\nAdds specs/tasks-async-system.md as the active design for the bundled tasks\nplugin. Supersedes ORA-165 (six task types, Y.Doc pages, 700-line sub-agent\nprompt) and the TASK-31 port-as-is plan. Both prior docs gain a SUPERSEDED\nheade\n[…]\nt lock keys to ensure isolation between different keys.\n- Improved overall test coverage for lock functionality.\n\n* chore: update pkg version\n\n---------\n\nCo-authored-by: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(tasks): clean-sheet rebuild spec for the async tasks plugin (#208)",
          "author_name": "Youssef Hany",
          "author_login": "youssefhany-ixo",
          "committed_at": "2026-06-16T06:25:10Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "1edf5582a3d55ffb6754089c7925dd4c36b7bc56",
          "body": "fix: normalize Matrix homeserver URLs from DID service endpoints",
          "is_bot": false,
          "headline": "Merge pull request #209 from ixoworld/fix/matrix-server-normalization",
          "author_name": "Michael-Ixo",
          "author_login": "Michael-Ixo",
          "committed_at": "2026-06-10T17:55:39Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2c82004d2bdc21f9aecd32004e6505d6a25500bc",
          "body": "Authored by: Michael Pretorius <michael@ixo.world>",
          "is_bot": false,
          "headline": "chore: fix package.json formatting",
          "author_name": "Michael Pretorius",
          "author_login": "Michael-Ixo",
          "committed_at": "2026-06-10T17:52:04Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b1a1d72cca2dc9bbd2dc50ac7f238138337e2010",
          "body": "Authored by: Michael Pretorius <michael@ixo.world>",
          "is_bot": false,
          "headline": "fix: normalize Matrix homeserver URLs from DID service endpoints",
          "author_name": "Michael Pretorius",
          "author_login": "Michael-Ixo",
          "committed_at": "2026-06-10T17:45:43Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d6c852a0879af2fb09c796ecada89762c5aa4ffe",
          "body": "…n (#207)\n\n* feat(auth): UCAN invocation authentication + durable Matrix delegation\n\nMove oracle authentication to user-signed UCAN invocations (delegation becomes authorization-only), and let Matrix clients use the delegation by storing it durably in the user's Matrix room.\n\n- Invocation auth on HT\n[…]\nide x-ucan-delegation; exposes useOraclesContext.\n- Example app .env.example + integration harness auth-invocation minting.\n\nRefs ORA-261, ORA-262, ORA-263, ORA-264, ORA-265, ORA-269.\n\n* chore: format",
          "is_bot": false,
          "headline": "feat(auth): UCAN invocation authentication + durable Matrix delegatio…",
          "author_name": "Youssef Hany",
          "author_login": "youssefhany-ixo",
          "committed_at": "2026-06-09T17:56:50Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "d8cab89e094475b1a4f5675f5161cf4482ad1520",
          "body": "* fix(messages): make sandbox archival mandatory for all processed attachments\n\nEvery accepted attachment is now downloaded and uploaded to the user's\nsandbox workspace so the agent can keep working with the original file:\n\n- Remove the HTTP image/video URL passthrough early-return that skipped\n  th\n[…]\ngins so constants, types, and utilities are no longer silently\ndropped from the public API. Also adds matrix-group-chats which was\nabsent from the barrel entirely.\n\nORA-259\n\n* chore: update pkg verion",
          "is_bot": false,
          "headline": "fix(runtime): export full plugin index surfaces from barrel (#206)",
          "author_name": "Youssef Hany",
          "author_login": "youssefhany-ixo",
          "committed_at": "2026-06-05T07:09:43Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "42fee27eb9820643fe2c1a9303d2117e35d9e89b",
          "body": "…chments (#205)\n\n* fix(messages): make sandbox archival mandatory for all processed attachments\n\nEvery accepted attachment is now downloaded and uploaded to the user's\nsandbox workspace so the agent can keep working with the original file:\n\n- Remove the HTTP image/video URL passthrough early-return \n[…]\ndbox guards and fix the stale doc comment\n- Update unit tests for the new contract + new test asserting HTTP\n  image URLs are archived even when AI URL passthrough succeeds\n\n* chore: update pkg verion",
          "is_bot": false,
          "headline": "fix(messages): make sandbox archival mandatory for all processed atta…",
          "author_name": "Youssef Hany",
          "author_login": "youssefhany-ixo",
          "committed_at": "2026-06-05T04:49:24Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "ca932219e528c9bd82be29f82dd87c3f2c2aaaf9",
          "body": null,
          "is_bot": false,
          "headline": "fix: disable credits env var (#204)",
          "author_name": "Youssef Hany",
          "author_login": "youssefhany-ixo",
          "committed_at": "2026-06-04T14:16:08Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5933b55b49369bb2963dc8874a0be2a5936d22bb",
          "body": "- Remove unnecessary type assertions in ambient-factory, create-oracle-app, and claim-processing-service\n- Import SupportedDID type and properly cast oracleDid in ucan.service\n- Fix garbled comment in npm-package-publish.yaml workflow\n- Remove any type annotations in resolve-ui-component with proper comments\n- Ensure all code passes eslint, prettier, and TypeScript compilation\n\nhttps://claude.ai/code/session_01BsDS1HyWWuMMpMGjr6BUF9\n\nCo-authored-by: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "Fix CI pipeline linting and build errors (#203)",
          "author_name": "Youssef Hany",
          "author_login": "youssefhany-ixo",
          "committed_at": "2026-06-04T13:49:10Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "1c091902feee5242e21b577fe6bd4999ef2d86c9",
          "body": "* chore: update package versions and configurations\n\n- Bumped pnpm version from 10.23.0 to 11.5.1.\n- Updated various package versions in package.json and pnpm-lock.yaml, including:\n  - `@changesets/changelog-github` from 0.5.1 to 0.5.2\n  - `@changesets/cli` from 2.29.7 to 2.31.0\n  - `@eslint/js` fro\n[…]\nule to prevent unnecessary type assertions in page functions\n\n- Introduced an eslint-disable comment for unnecessary type assertions in `page-functions.ts` to improve code quality and maintainability.",
          "is_bot": false,
          "headline": "Chore/update pkgs (#202)",
          "author_name": "Youssef Hany",
          "author_login": "youssefhany-ixo",
          "committed_at": "2026-06-03T19:27:26Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "ad033b2deb499788cb1bae9c6d7a1996234955ee",
          "body": "* update node version\n\n* Cleanup publish flags\n\n* Add repository url to package.json\n\n* oracles-chain-client repository\n\n* Add repository URL to package.json files across multiple packages",
          "is_bot": false,
          "headline": "Fix npm package workflow (#201)",
          "author_name": "LukePetzer-ixo",
          "author_login": "LukePetzer-ixo",
          "committed_at": "2026-06-03T08:02:31Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "072517f641170f8dd090ed6ef8846ec5f39db645",
          "body": null,
          "is_bot": false,
          "headline": "Remove deprecated node auth token (#200)",
          "author_name": "LukePetzer-ixo",
          "author_login": "LukePetzer-ixo",
          "committed_at": "2026-06-03T06:41:43Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "dd672b397e6fbe492ccacb5f540899a295accf15",
          "body": "id-token write for trusted publishing",
          "is_bot": false,
          "headline": "Update npm-package-publish.yaml (#199)",
          "author_name": "LukePetzer-ixo",
          "author_login": "LukePetzer-ixo",
          "committed_at": "2026-06-03T05:17:41Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6b560a448e9670955abbf94a5d71df387014076c",
          "body": "* chore: update pkgs\n\n* chore: bump version of @ixo/oracle-runtime to 1.0.1",
          "is_bot": false,
          "headline": "Chore/update pkgs (#198)",
          "author_name": "Youssef Hany",
          "author_login": "youssefhany-ixo",
          "committed_at": "2026-06-02T16:18:21Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "af1b532988214c24b612a3539b9c7456d5b14236",
          "body": "- Bumped version of `@ixo/oracles-events` from 1.0.4 to 1.0.5.\n- Updated `@ixo/oracle-runtime` version from 0.0.1 to 1.0.0.\n- Increased `@ixo/oracles-client-sdk` version from 1.1.34 to 1.2.0.\n- Incremented `@ixo/sqlite-saver` version from 1.0.52 to 1.0.53.\n\nThese changes reflect the latest updates and improvements across the respective packages.",
          "is_bot": false,
          "headline": "Update package versions for multiple modules (#197)",
          "author_name": "Youssef Hany",
          "author_login": "youssefhany-ixo",
          "committed_at": "2026-06-01T20:43:16Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9a8990d3e544eb585d3726ed64312f9b402bcba4",
          "body": "…sed (#190)\n\n* docs(spec): ORA-219 QiForge plugin-based runtime transformation spec\n\nComplete technical specification for transforming QiForge into a plugin-based\nruntime. Single-phase transformation covering:\n\n- Plugin manifest system for agent-side DX\n- Three-tier prompt loading (always-on summary\n[…]\nAN delegations, ensuring secure user authentication.\n\nThese changes improve data integrity and security within the oracle-runtime package, enhancing the overall user experience and system reliability.",
          "is_bot": false,
          "headline": "Feature/ora 219 qiforge transform how we use qi forge to be plugin ba…",
          "author_name": "Youssef Hany",
          "author_login": "youssefhany-ixo",
          "committed_at": "2026-06-01T19:37:57Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "1ea9a308f46ed85cbba5e4b37f64157415d7d63c",
          "body": "…ices (#196)\n\nLets editor-agent skills (e.g. the YellowCard skill) call any UCAN-gated\n  service without round-tripping the delegation CAR through the LLM.\n\n  - Add `UcanService.createInvocationFromDelegation` — resolves the\n    service's did:web from its URL, mints a fresh oracle-signed\n    invocat\n[…]\nconsole calls in oracles-chain-client\n    (per its CLAUDE.md), narrow the message-service `as any` cast,\n    and disable+document the unavoidable `any` in ucan/validator and\n    editor/page-functions.",
          "is_bot": false,
          "headline": "feat(editor-agent): mint_invocation tool for UCAN-gated external serv…",
          "author_name": "Michael-Ixo",
          "author_login": "Michael-Ixo",
          "committed_at": "2026-05-21T06:42:39Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "31f94ddb1c5b3ca933e96707381c22b34ca65a6a",
          "body": "fix(matrix): bump @ixo/matrix-bot-sdk to 0.8.0-ixo.12",
          "is_bot": false,
          "headline": "Merge pull request #195 from ixoworld/fix/matrix-bot-sdk",
          "author_name": "Michael-Ixo",
          "author_login": "Michael-Ixo",
          "committed_at": "2026-05-11T11:24:47Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "edc17ebaf277e57a0a161155520a935d4f034540",
          "body": null,
          "is_bot": false,
          "headline": "fix: prettier fixes",
          "author_name": "Michael Pretorius",
          "author_login": "Michael-Ixo",
          "committed_at": "2026-05-11T11:21:04Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4c05250cc092289ef4d6f02942d6c3cf5c88f842",
          "body": null,
          "is_bot": false,
          "headline": "fix(deps): pin @ixo/matrix to 1.2.33 via pnpm override",
          "author_name": "Michael Pretorius",
          "author_login": "Michael-Ixo",
          "committed_at": "2026-05-11T11:04:15Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d58c116206bb40a7c842760059f279d15ee377b1",
          "body": null,
          "is_bot": false,
          "headline": "chore: update app depp @ixo/matrix",
          "author_name": "Michael Pretorius",
          "author_login": "Michael-Ixo",
          "committed_at": "2026-05-11T10:50:17Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0ee163af5c7be7b90fe63bc784ce2933da44bfbb",
          "body": "  Pulls in two crypto fixes from the fix/crypto-bugs branch of our\n  matrix-bot-sdk fork:\n\n  - 93c0155 \"ensure crypto readiness before use and cache missing backup\n    keys\" — adds an in-memory cache of session IDs confirmed missing from\n    the key backup so BackupManager stops re-fetching the same\n[…]\n(exit 137, not OOMKilled).\n\n  - 61b827e \"serialize OlmMachine SQLite access\" — prevents\n    \"database is locked\" crashes when concurrent Matrix events both\n    write to the Olm store at the same time.",
          "is_bot": false,
          "headline": "fix(matrix): bump @ixo/matrix-bot-sdk to 0.8.0-ixo.12",
          "author_name": "Michael Pretorius",
          "author_login": "Michael-Ixo",
          "committed_at": "2026-05-11T10:44:03Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "19e3c9d6db549fe0d535be39165da1a1231f76c7",
          "body": "fix(ucan): try all resolved Ed25519 keys when verifying delegations",
          "is_bot": false,
          "headline": "Merge pull request #194 from ixoworld/fix/ucans",
          "author_name": "Michael-Ixo",
          "author_login": "Michael-Ixo",
          "committed_at": "2026-05-06T14:29:40Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "fd210e454c3eaa98ead7d6f094b3fc2460203a2b",
          "body": null,
          "is_bot": false,
          "headline": "chore: bump ixo:ucan dep for app",
          "author_name": "Michael Pretorius",
          "author_login": "Michael-Ixo",
          "committed_at": "2026-05-06T14:29:21Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9c6c24c6373beda437aff743d2a2bd3dd518c448",
          "body": "  DID docs may publish multiple Ed25519 verification methods. The validator\n  only tried resolved.ok[0], rejecting valid signatures whenever a user signed\n  with any key past the first one.",
          "is_bot": false,
          "headline": "fix(ucan): try all resolved Ed25519 keys when verifying delegations",
          "author_name": "Michael Pretorius",
          "author_login": "Michael-Ixo",
          "committed_at": "2026-05-06T14:23:29Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "05627d46a246d25beafa5d6fefa76c87aeec65ea",
          "body": "* fix: matrix dump messages log\n\n* chore: repblish common with matrix updates\n\n* update the deps",
          "is_bot": false,
          "headline": "Fix/matrix messages logs (#193)",
          "author_name": "Youssef Hany",
          "author_login": "youssefhany-ixo",
          "committed_at": "2026-05-06T08:55:07Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2de2ab911f7bf679b5ac17a31488905e55807ed5",
          "body": null,
          "is_bot": false,
          "headline": "fix: matrix dump messages log (#192)",
          "author_name": "Youssef Hany",
          "author_login": "youssefhany-ixo",
          "committed_at": "2026-05-06T05:37:30Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4baa896e86e5f2846d475c5dde6b3c0291c06062",
          "body": "* feat(messages): group chat mention gating + channel memory\n\nIn group rooms the oracle now stays quiet unless explicitly addressed and\nmaintains a per-room compacted memory so it has full context when it does\nrespond.\n\nResponse gating (group rooms only — DMs unchanged):\n- Respond when @mentioned, w\n[…]\n//claude.ai/code/session_01KnDXjiXykj9BC6MePc7SFQ\n\n* chore: remove announcement HTML\n\nhttps://claude.ai/code/session_01KnDXjiXykj9BC6MePc7SFQ\n\n---------\n\nCo-authored-by: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat: group chat support with channel memory and E2EE fixes (#191)",
          "author_name": "Youssef Hany",
          "author_login": "youssefhany-ixo",
          "committed_at": "2026-05-04T13:39:02Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "4065306802ec93cb1c07270e80a17f12b924e49a",
          "body": "- Added UserPreferencesModule, UserPreferencesService, and UserPreferencesController to manage user preferences.\n- Integrated user preferences into the main agent's prompt handling, allowing for personalized responses based on user-defined settings.\n- Introduced a new tool for setting user preferenc\n[…]\nmponents to fetch and utilize user preferences, enhancing the overall user experience.\n\nThis feature allows users to customize their interaction with the system, improving engagement and satisfaction.",
          "is_bot": false,
          "headline": "feat(user-preferences): implement user preferences management (#189)",
          "author_name": "Youssef Hany",
          "author_login": "youssefhany-ixo",
          "committed_at": "2026-04-30T12:26:49Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "e1c18dd26a8065de31b880445840b681c06a6616",
          "body": "…… (#188)\n\n* chore: update @ixo/common to version 1.1.39 and refactor memory engine service for batch processing\n\n- Updated the version of @ixo/common in package.json to 1.1.39.\n- Refactored MemoryEngineService to implement batch processing for user context queries, improving performance and error h\n[…]\nted the version of @ixo/common in package.json to 1.1.39.\n- Refactored the timer setup in MemoryEngineService for improved readability.\n- Updated pnpm-lock.yaml to reflect the new dependency versions.",
          "is_bot": false,
          "headline": "chore: update @ixo/common to version 1.1.39 and refactor memory engin…",
          "author_name": "Youssef Hany",
          "author_login": "youssefhany-ixo",
          "committed_at": "2026-04-30T06:41:21Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "d7cba0d1e7089937b4b662c7ce4cef03f68999fc",
          "body": null,
          "is_bot": false,
          "headline": "fix: update lockfile (#187)",
          "author_name": "Youssef Hany",
          "author_login": "youssefhany-ixo",
          "committed_at": "2026-04-29T10:56:25Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e9e51dcfb649af9cefee73bde19124942386ab55",
          "body": "Update @ixo/common dependency version",
          "is_bot": false,
          "headline": "Update @ixo/common dependency version (#186)",
          "author_name": "Youssef Hany",
          "author_login": "youssefhany-ixo",
          "committed_at": "2026-04-29T10:52:16Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6918353ae30c67b47420d74b4fec678bcdce3563",
          "body": "upgrade deps",
          "is_bot": false,
          "headline": "update-common-pkg (#185)",
          "author_name": "Youssef Hany",
          "author_login": "youssefhany-ixo",
          "committed_at": "2026-04-29T10:22:54Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "32949649846f64da2f04914d89174a6bc00b86dc",
          "body": "…gistry calls (#184)\n\n- Remove UserSkillsService (sandbox_run-based user skill scanning)\n- skills-tools: accept skillsUcan token; forward as Authorization: Bearer to\n  ai-skills registry so private (published) skills surface alongside public ones\n- source field: \"user\"|\"public\" → \"private\"|\"public\";\n[…]\nupdate to 3-tier skill model (drafts / private / public); simplify\n  create_skill flow; add publish_skill and delete_skill docs\n- deps: bump @composio, @langchain, @nestjs, @ixo/common to latest minor",
          "is_bot": false,
          "headline": "feat(skills): replace sandbox ls discovery with UCAN-authenticated re…",
          "author_name": "Youssef Hany",
          "author_login": "youssefhany-ixo",
          "committed_at": "2026-04-28T16:10:35Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "f3e705416d6af1debd6a7e01f03d397156083ead",
          "body": "* feat: enhance oracle configuration and prompt handling\n\n- Updated `oracle.config.json` to include new fields: `model`, `prompt`, `skills`, `customSkills`, and `mcpServers`.\n- Refactored `main-agent.ts` to normalize optional fields from the oracle configuration, ensuring downstream checks are unamb\n[…]\ng the destructuring assignment for parameters in the `buildOracleSection` function.\n- Updated the way communication style is appended to the prompt, ensuring consistent formatting across the function.",
          "is_bot": false,
          "headline": "feat: enhance oracle configuration and prompt handling (#183)",
          "author_name": "Youssef Hany",
          "author_login": "youssefhany-ixo",
          "committed_at": "2026-04-24T13:07:33Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "787d352960e26fcc449a002aed40b41d35af8605",
          "body": "fix: sub-agent session routing and AG-UI reliability",
          "is_bot": false,
          "headline": "Merge pull request #182 from ixoworld/fix/ag-ui",
          "author_name": "Michael-Ixo",
          "author_login": "Michael-Ixo",
          "committed_at": "2026-04-24T04:28:07Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b3523c023e3ed4e2b8ce311b1b74e54bcfb752e3",
          "body": null,
          "is_bot": false,
          "headline": "bump @ixo/common",
          "author_name": "Michael Pretorius",
          "author_login": "Michael-Ixo",
          "committed_at": "2026-04-24T04:21:13Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "58a00bce98975700b3756f68ae5c25cc4523e428",
          "body": "  Root fix for AG-UI tool calls intermittently failing, especially with\n  nested sub-agent invocations (duplicate React keys, silent timeouts,\n  model narrating plans instead of calling the tool).\n\n  Changes:\n\n  - packages/common parser-action-tool.ts:\n    * Prefer configurable.sessionId over thread\n[…]\noncrete worked example\n\n  - apps/app llm-provider.ts: bump main+skills roles to kimi-k2.6\n  - packages/common: version 1.1.36 → 1.1.37 for publish\n\n  Authored by: Michael Pretorius <michael@ixo.world>",
          "is_bot": false,
          "headline": "fix: sub-agent session routing and AG-UI reliability",
          "author_name": "Michael Pretorius",
          "author_login": "Michael-Ixo",
          "committed_at": "2026-04-24T04:12:32Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "5e8f355a7865ef8892729401fec7ddcbbc2757f1",
          "body": "* docs: plan for per-user custom skills\n\nDesign doc for letting users create private skills scoped to a single\nuser-oracle Matrix room. Recommends extending the main agent (vs. a new\nsub-agent), reusing the SecretsService storage pattern for encrypted\nper-room skill storage, and lazy materialisation\n[…]\nked GitHub PR skill\nto show the connection-check pattern end-to-end (including the \"pause\nand wait\" branch for unauthenticated integrations).\n\n---------\n\nCo-authored-by: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "Add user-created custom skills alongside public skills (#181)",
          "author_name": "Youssef Hany",
          "author_login": "youssefhany-ixo",
          "committed_at": "2026-04-22T07:19:55Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "06a057fe2580e7abcbfd350300c9407b516186c1",
          "body": "* feat: integrate Composio for external SaaS app tools (Gmail, GitHub, Linear, etc.)\n\n- Add @composio/core and @composio/langchain to app dependencies\n- Add COMPOSIO_API_KEY env var (optional — tools only load when set)\n- Wire getComposioTools into main-agent Promise.allSettled block\n- Update system\n[…]\nion environment\n\n- Changed the default value of COMPOSIO_BASE_URL in the environment schema from an empty string to 'https://composio.ixo.earth', ensuring proper integration with the Composio service.",
          "is_bot": false,
          "headline": "feat: integrate Composio for external SaaS app tools (#180)",
          "author_name": "Youssef Hany",
          "author_login": "youssefhany-ixo",
          "committed_at": "2026-04-22T05:55:49Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "4f04330527eab8f4e68335e7a6a3df4e1d9bbd9c",
          "body": "…S_URL is not set (#179)\n\nWhen REDIS_URL is omitted, the following features are now gracefully disabled\nwith clear startup logging:\n\n- TasksModule (BullMQ job queues / scheduled tasks)\n- TokenLimiter (credit/token tracking middleware)\n- ClaimProcessingService (on-chain credit claims)\n- RedisService \n[…]\n Zod env schema. A new `isRedisEnabled()`\nhelper centralizes the check across all guard points.\n\nhttps://claude.ai/code/session_01HWA6x5AYQ56B9GNsYGc48V\n\nCo-authored-by: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat: add Redis feature flags to disable dependent features when REDI…",
          "author_name": "Youssef Hany",
          "author_login": "youssefhany-ixo",
          "committed_at": "2026-04-13T11:28:35Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "206f860916e5213096ab1f36bec51b4a4aa13134",
          "body": "* Feature/ora 176 ymap taskmeta schema task page markdown template (#166)\n\n* chore: fix formating\n\n* feat: introduce ClaimProcessingService and related utilities\n\n- Added ClaimProcessingService to handle claim processing logic, including submission to the subscription API and task management.\n- Crea\n[…]\n and 1.2.3 respectively, ensuring compatibility with recent changes and improvements.\n\n* chore: update to use published pkgs\n\n* chore: format\n\n---------\n\nCo-authored-by: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feature/ora-165-tasks-module (#167)",
          "author_name": "Youssef Hany",
          "author_login": "youssefhany-ixo",
          "committed_at": "2026-03-25T08:18:32Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "50bab982d1418e53a4120dd33a03c69966b07528",
          "body": "fix: update deps so oracles-client-sdh uses new oracles-chain-client",
          "is_bot": false,
          "headline": "Merge pull request #178 from ixoworld/feat/auth",
          "author_name": "Michael-Ixo",
          "author_login": "Michael-Ixo",
          "committed_at": "2026-03-25T06:28:39Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a52c60314e6a139dcc6273bd6a2fbba0382cea96",
          "body": null,
          "is_bot": false,
          "headline": "fix: update deps so oracles-client-sdh uses new oracles-chain-client",
          "author_name": "Michael Pretorius",
          "author_login": "Michael-Ixo",
          "committed_at": "2026-03-25T06:26:12Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b973f08d2f0445ae99d04ead7ae44be6bfddb916",
          "body": "fix: bump updated deps",
          "is_bot": false,
          "headline": "Merge pull request #177 from ixoworld/feat/auth",
          "author_name": "Michael-Ixo",
          "author_login": "Michael-Ixo",
          "committed_at": "2026-03-24T12:35:31Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "439d54d7545a907aeddaddab0e3fec7242147f5e",
          "body": null,
          "is_bot": false,
          "headline": "fix: update deps",
          "author_name": "Michael Pretorius",
          "author_login": "Michael-Ixo",
          "committed_at": "2026-03-24T12:33:49Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "088e00c422298cbf05aee2248ad8602f3ac4a84b",
          "body": null,
          "is_bot": false,
          "headline": "fix: install deps",
          "author_name": "Michael Pretorius",
          "author_login": "Michael-Ixo",
          "committed_at": "2026-03-24T12:28:30Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "04efc5f940c4280d424b717dbdfdecd14c15a9d3",
          "body": null,
          "is_bot": false,
          "headline": "fix: bump updated deps",
          "author_name": "Michael Pretorius",
          "author_login": "Michael-Ixo",
          "committed_at": "2026-03-24T12:24:25Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "00dd808b20c6d77b45a0fc7bb0fc259f782596f9",
          "body": "feat: add UCAN authentication for downstream service calls",
          "is_bot": false,
          "headline": "Merge pull request #173 from ixoworld/feat/auth",
          "author_name": "Michael-Ixo",
          "author_login": "Michael-Ixo",
          "committed_at": "2026-03-24T12:22:26Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5b87e9a87cc3d83defe23f9a84d6dd163bf59e7a",
          "body": "…rocessing\n\n  - Rewrite listMessages to read directly from SQLite checkpoint instead of\n    creating a full MainAgentGraph, eliminating unnecessary agent init overhead\n  - Add UCAN invocation support for memory engine auth in session history\n    processing (UCAN-first, Matrix OpenID fallback)\n  - Inject UcanModule into Messages and Sessions modules\n  - Add diagnostic warnings when UCAN invocation is skipped\n  - Reduce noisy WS event emission and claim signing setup logs",
          "is_bot": false,
          "headline": "feat: optimize message listing and add UCAN auth to session history p…",
          "author_name": "Michael Pretorius",
          "author_login": "Michael-Ixo",
          "committed_at": "2026-03-19T08:53:27Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "da8f08dc02bdf64258156b72c99091911a5aff41",
          "body": null,
          "is_bot": false,
          "headline": "fix: fix prettier issues",
          "author_name": "Michael Pretorius",
          "author_login": "Michael-Ixo",
          "committed_at": "2026-03-18T07:36:05Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "78a28d7868befe884af3c0ec19a4c929f8298c68",
          "body": "…ded DID resolution docs\n\n  Document the new DID resolvers (createWebDIDResolver, createLocalDIDResolver)\n  with options tables, usage examples, and composite resolver chaining. Update\n  DID support table to reflect did:web as fully supported. Add missing\n  re-exports (UcantoPrincipal, Verifier) to advanced usage section.",
          "is_bot": false,
          "headline": "docs: update @ixo/ucan README with did:web, local resolver, and expan…",
          "author_name": "Michael Pretorius",
          "author_login": "Michael-Ixo",
          "committed_at": "2026-03-18T07:19:40Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2d988e85c750141da8e805365e43ca95e5a2237f",
          "body": "…ix OpenID dependency\n\n  Restructure authentication to prioritize UCAN delegation over Matrix OpenID\n  tokens. The server-side middleware now validates and caches UCAN delegations\n  before falling back to Matrix token auth. The client SDK removes all OpenID\n  token management (getOpenIdToken, encryp\n[…]\nID resolver to @ixo/ucan (v1.2.1) for resolving\n  pre-registered DIDs without network calls, reduces devnet credit multipliers\n  to more practical values, and allows SUBSCRIPTION_URL env var override.",
          "is_bot": false,
          "headline": "feat: make UCAN delegation the primary auth mechanism, deprecate Matr…",
          "author_name": "Michael Pretorius",
          "author_login": "Michael-Ixo",
          "committed_at": "2026-03-18T05:10:56Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "c704f82d5b647c767d3da4a81d0cda4f40c8d7cd",
          "body": null,
          "is_bot": false,
          "headline": "Merge remote-tracking branch 'origin/main' into feat/auth",
          "author_name": "Michael Pretorius",
          "author_login": "Michael-Ixo",
          "committed_at": "2026-03-17T04:26:30Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a82a897b51609952767f1ba68acbb3e4aafadd2f",
          "body": "  Implement UCAN delegation chain support for oracle-to-service\n  authentication, replacing direct Matrix OpenID token forwarding.\n  The oracle now creates cryptographically signed, audience-bound\n  invocations for each downstream service using the user's cached\n  delegation as proof.\n\n  Services up\n[…]\npdated exports\n  - Replaced @ixo/logger with console in browser-reachable packages\n  - Changed @ixo/common and @ixo/ucan to workspace:* references\n\n  Authored by: Michael Pretorius <michael@ixo.world>",
          "is_bot": false,
          "headline": "feat: add UCAN authentication for downstream service calls",
          "author_name": "Michael Pretorius",
          "author_login": "Michael-Ixo",
          "committed_at": "2026-03-17T04:14:12Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "b5f1d97eaec3a0108abadd0397f6bbc1555f979b",
          "body": "…nt context (#172)\n\n- Create agui-agent.ts with dedicated prompt including best practices and schema rules\n- Replace direct agActionTools in main agent with call_ag-ui_agent sub-agent\n- Forward all AG-UI tool calls to parent graph for SSE streaming\n- Remove AG_UI_TOOLS_DOCUMENTATION from main agent system prompt\n- Update main prompt to reference AG-UI Agent instead of direct tool calls",
          "is_bot": false,
          "headline": "feat: extract AG-UI tools into dedicated sub-agent to reduce main age…",
          "author_name": "Youssef Hany",
          "author_login": "youssefhany-ixo",
          "committed_at": "2026-03-16T22:45:55Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "25ededdea724b9ff4a9ff760b892b8c998ee93c2",
          "body": null,
          "is_bot": false,
          "headline": "chore: formating",
          "author_name": "youssefhany-ixo",
          "author_login": "youssefhany-ixo",
          "committed_at": "2026-03-16T11:06:39Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "aa64e77eb956c2b37045a7f1593b251b5b97371b",
          "body": "- Enhanced the `listBlocksTool` to include pagination parameters (`start` and `end`), allowing users to specify the range of blocks returned.\n- Updated JSON response to include `total` count of blocks and adjusted `count` to reflect the number of blocks in the current pagination slice.\n- Improved documentation to clarify usage of pagination and provide examples for listing blocks with different ranges.",
          "is_bot": false,
          "headline": "feat: add pagination support to block listing tool",
          "author_name": "youssefhany-ixo",
          "author_login": "youssefhany-ixo",
          "committed_at": "2026-03-16T11:06:39Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7a2716cb3290a9c8097b7bb51a81c34d969c979e",
          "body": "- Added new tools for editing blocks, including 'edit_block' and 'create_block', to improve functionality within the editor.\n- Implemented diff tracking for block updates, allowing for detailed comparison of old and new states of block properties.\n- Updated JSON responses to include diff information, enhancing the feedback provided during block operations.\n- Improved logging and user guidance for block management, ensuring clarity in the editing process.",
          "is_bot": false,
          "headline": "feat: enhance block editing capabilities with diff tracking",
          "author_name": "youssefhany-ixo",
          "author_login": "youssefhany-ixo",
          "committed_at": "2026-03-16T11:06:39Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ba39181a76eea11576714570a4021e2628af708b",
          "body": "- Updated the `injectPageSwitchMarker` function to provide detailed logging for page context switches, ensuring agents can accurately confirm active pages and handle stale context.\n- Refactored agent task handling to replace `query` with `task`, emphasizing the need for self-contained instructions f\n[…]\nfy task expectations and improve user guidance for page management.\n- Introduced stricter task discipline in agent prompts, ensuring clarity and completeness in task instructions to prevent ambiguity.",
          "is_bot": false,
          "headline": "feat: enhance agent task handling and improve logging",
          "author_name": "youssefhany-ixo",
          "author_login": "youssefhany-ixo",
          "committed_at": "2026-03-16T11:06:39Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "ea42bd6869a4fe9386c77635fa10c5394c1eb07f",
          "body": "- Updated agent creation functions to accept `userDid` and `sessionId`, improving user context management across various agents.\n- Introduced `injectPageSwitchMarker` to handle page context switches, ensuring agents can confirm active pages and avoid stale context.\n- Enhanced editor capabilities wit\n[…]\nnt, emphasizing the importance of current page context during operations.\n- Refactored existing agents to integrate new user context parameters, ensuring consistency and clarity in agent interactions.",
          "is_bot": false,
          "headline": "feat: enhance agent creation with user context and page switch handling",
          "author_name": "youssefhany-ixo",
          "author_login": "youssefhany-ixo",
          "committed_at": "2026-03-16T11:06:39Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "d7f6f3d246162cf950741f1f7e98a477e3276f67",
          "body": "…oom ID validation\n\n- Introduced a new `createStandaloneEditorTool` to allow the main agent to open any page by room ID, enabling full editing capabilities without a pre-set editor room.\n- Added validation for Matrix room IDs to ensure correct formatting, improving error handling during page operati\n[…]\nndalone contexts, enhancing user guidance for page management.\n- Refactored existing page tools to include detailed descriptions and validation for room IDs, ensuring consistency and clarity in usage.",
          "is_bot": false,
          "headline": "feat: enhance editor capabilities with standalone tool and improved r…",
          "author_name": "youssefhany-ixo",
          "author_login": "youssefhany-ixo",
          "committed_at": "2026-03-16T11:06:39Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "3038611359a78237297c267c3043f11e1b65a90a",
          "body": null,
          "is_bot": false,
          "headline": "chore: fix foramting",
          "author_name": "youssefhany-ixo",
          "author_login": "youssefhany-ixo",
          "committed_at": "2026-03-16T11:06:39Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d4b1adeb5734672079b460bb5ed8c56483f1126f",
          "body": "Updated the prompt to include detailed instructions for page management, including creating, listing, and editing pages. The new structure clarifies the delegation of tasks to the Editor Agent and the use of the Memory Agent for context retrieval, improving user guidance for page operations.",
          "is_bot": false,
          "headline": "feat: enhance page management capabilities in editor mode",
          "author_name": "youssefhany-ixo",
          "author_login": "youssefhany-ixo",
          "committed_at": "2026-03-16T11:06:39Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "bdc812c4db8f82fb1c93aa6dbc16eb8110889648",
          "body": "…mory logging\n\nIntroduce a file system for oracles using Matrix rooms as persistent CRDT\ndocuments. The editor agent can now create, read, and update pages with\nfull diff tracking (old vs new for title, topic, and content). All page\noperations are logged to the Memory Engine (fire-and-forget).\n\nKey \n[…]\ns\n- 3-layer emoji pipeline (input, output, message transform)\n- block-actions: positional insert, move, and parent lookup\n- playbook updates: sub-agents, memory engine, state schema, project structure",
          "is_bot": false,
          "headline": "feat: add page tools (create, read, update) with diff tracking and me…",
          "author_name": "youssefhany-ixo",
          "author_login": "youssefhany-ixo",
          "committed_at": "2026-03-16T11:06:39Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "0014e213dcb36b2ecd87bbafa9658177d957b7ec",
          "body": null,
          "is_bot": false,
          "headline": "chore: formating fix",
          "author_name": "youssefhany-ixo",
          "author_login": "youssefhany-ixo",
          "committed_at": "2026-03-10T11:33:21Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a29ce7680151ad7f0677376cd7857fefe1e2433d",
          "body": "…ated package versions\n\n- Changed @ixo/common dependency from workspace reference to version 1.1.33 in package.json.\n- Updated related dependencies in pnpm-lock.yaml to reflect the new versioning.\n- Incremented zod-to-json-schema version from 3.25.0 to 3.25.1 in multiple places for consistency.\n- Updated browserslist version from 4.28.0 to 4.28.1.\n\nThis commit ensures compatibility with the latest version of @ixo/common and related packages.",
          "is_bot": false,
          "headline": "chore: update @ixo/common dependency to version 1.1.33 and adjust rel…",
          "author_name": "youssefhany-ixo",
          "author_login": "youssefhany-ixo",
          "committed_at": "2026-03-10T11:33:21Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "597d0ad55f6e439b0eca5c809e013133b70bdd5b",
          "body": "…tion\n\n- Changed internal port from 3000 to 4000 in fly.toml.\n- Updated @ixo/common dependency to use workspace reference.\n- Updated LLM provider configuration to support 'nebius' and 'openrouter'.\n- Refactored various agents to utilize the new provider-aware chat model factory.\n- Enhanced file proc\n[…]\nUpdated model pricing handling in token limiter for better cost management.\n\nThis commit enhances the application's flexibility in selecting LLM providers and improves cost tracking for AI operations.",
          "is_bot": false,
          "headline": "chore: update internal port and dependencies for LLM provider integra…",
          "author_name": "youssefhany-ixo",
          "author_login": "youssefhany-ixo",
          "committed_at": "2026-03-10T11:33:21Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "259fc913ede9cfef098849a32fd17309e421ccca",
          "body": "- Adjust class and interface definitions for better alignment and clarity in sync-call.ts, checkpointer.ts, and types.ts.\n- Refactor conditional checks in use-memory-engine.ts, use-contract-oracle.ts, and use-live-agent.ts for consistent indentation and readability.",
          "is_bot": false,
          "headline": "style: improve code formatting and readability across multiple files",
          "author_name": "youssefhany-ixo",
          "author_login": "youssefhany-ixo",
          "committed_at": "2026-03-10T11:28:15Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5e6d242dce8d8413bc9debe586aaf06a829afcc0",
          "body": "- Make system prompt fatal (not gracefully degraded) since failure is a code bug\n- Wrap createEditorAgent in try/catch for consistent resilience\n- Replace fragile index-coupled serviceNames array with named destructuring\n- Use String() for safe error stringification in logger\n- Remove emoji from LLM system prompt (use plain text heading)\n- Remove dead _formatContextData function and unused imports\n- Fix docs claiming credits are disabled by default (they're enabled)",
          "is_bot": false,
          "headline": "fix: address PR review issues in graceful degradation",
          "author_name": "youssefhany-ixo",
          "author_login": "youssefhany-ixo",
          "committed_at": "2026-03-10T11:28:15Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b22ce5fd8c46c11ba6e637c33a3ebb2ae6c6b760",
          "body": "…CP init\n\nReplace the custom safeResolve helper + Promise.all pattern with\nPromise.allSettled. Each result is now handled individually via a\nsettled() extractor that logs errors and tracks unavailable services.\nCleaner, more idiomatic, and the promises run without any wrapping.\n\nhttps://claude.ai/code/session_01QDXkKqWgRBXhfgce2fANXS",
          "is_bot": false,
          "headline": "refactor: use Promise.allSettled instead of safeResolve wrapper for M…",
          "author_name": "Claude",
          "author_login": "claude",
          "committed_at": "2026-03-10T11:28:15Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "13dd9a2ce59f1c2f7a38eba7d63ef967575ae2ef",
          "body": "…-time setup\n\n- CLAUDE.md: add section telling the agent to check playbook docs first\n  when users ask oracle/repo questions, then fall back to source code;\n  agent should be autonomous and do tasks (deploy, edit files) for users\n- CLAUDE.md: update first-interaction note to include CLI as alternati\n[…]\nled, skip otherwise\n- getting-started.md: add full Fly.io deployment steps with the same\n  guidance (--no-deploy, project name, Redis optional)\n\nhttps://claude.ai/code/session_01QDXkKqWgRBXhfgce2fANXS",
          "is_bot": false,
          "headline": "docs: add playbook-first guidance, fix deployment flow, clarify first…",
          "author_name": "Claude",
          "author_login": "claude",
          "committed_at": "2026-03-10T11:28:15Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "c535f9aaac7e80faf1945a281d34b5da9fa3fc79",
          "body": "https://claude.ai/code/session_01QDXkKqWgRBXhfgce2fANXS",
          "is_bot": false,
          "headline": "style: apply prettier formatting to pre-existing files",
          "author_name": "Claude",
          "author_login": "claude",
          "committed_at": "2026-03-10T11:28:15Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "21e6c6a7d96d113b16d498a35470a1a5b325a0ea",
          "body": "- Wrap all MCP/agent initializations in Promise.all with safe fallbacks\n  so a single MCP failure (sandbox, memory-engine, firecrawl, etc.)\n  no longer blocks the entire request\n- Log errors and track unavailable services, then inject a degraded-\n  services notice into the agent system prompt so it \n[…]\ne\n- Update getting-started.md to clearly document the first-time setup\n  requirement (portal or CLI) and list all available clients after setup\n\nhttps://claude.ai/code/session_01QDXkKqWgRBXhfgce2fANXS",
          "is_bot": false,
          "headline": "feat: make MCP initialization resilient and clarify first-time-use docs",
          "author_name": "Claude",
          "author_login": "claude",
          "committed_at": "2026-03-10T11:28:15Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "c3810aa3e441bfc584e90a60aef04bfa5f8c96d7",
          "body": "feat(ucan): add facts support to delegations, invocations, and validation",
          "is_bot": false,
          "headline": "Merge pull request #163 from ixoworld/feat/ucan",
          "author_name": "Michael-Ixo",
          "author_login": "Michael-Ixo",
          "committed_at": "2026-03-10T07:00:29Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "50ccea9cd8eac0240cd8d1e6a0564b0ae244dea2",
          "body": null,
          "is_bot": false,
          "headline": "fix: fix prettier",
          "author_name": "Michael Pretorius",
          "author_login": "Michael-Ixo",
          "committed_at": "2026-03-10T06:49:26Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3782900331d6e04f62f4ab29b35daf5676505b6c",
          "body": "…tion\n\n  Expose the UCAN spec §3.2.4 facts parameter through createDelegation and\n  createInvocation helpers, and surface invocation facts in ValidateResult.\n  Facts are scoped per-UCAN — they do not propagate from delegation to\n  invocation. Includes 4 new tests (17 total) and updated README.\n\n  Authored by: Michael Pretorius <michael@ixo.world>",
          "is_bot": false,
          "headline": "feat(ucan): add facts support to delegations, invocations, and valida…",
          "author_name": "Michael Pretorius",
          "author_login": "Michael-Ixo",
          "committed_at": "2026-03-10T06:41:08Z",
          "body_truncated": false,
          "is_coding_agent": false
        }
      ],
      "releases_count": 100,
      "commits_last_year": 358,
      "latest_release_at": "2026-07-19T15:16:43Z",
      "latest_release_tag": "@ixo/sqlite-saver@1.0.55",
      "releases_from_tags": false,
      "days_since_last_push": 0,
      "active_weeks_last_year": 38,
      "days_since_latest_release": 6,
      "mean_days_between_releases": 3.7
    },
    "community": {
      "has_readme": true,
      "has_license": true,
      "has_description": true,
      "has_contributing": false,
      "health_percentage": 37,
      "has_issue_template": false,
      "has_code_of_conduct": false,
      "has_pull_request_template": false
    },
    "ecosystem": {
      "packages": [
        {
          "name": "@ixo/ucan",
          "exists": true,
          "license": null,
          "keywords": [],
          "ecosystem": "npm",
          "matches_repo": true,
          "registry_url": "https://www.npmjs.com/package/@ixo/ucan",
          "is_deprecated": false,
          "latest_version": "2.1.0",
          "repository_url": "https://github.com/ixoworld/qiforge",
          "versions_count": 11,
          "total_downloads": null,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": 2,
          "monthly_downloads": 3016,
          "first_published_at": "2025-12-10T13:22:31.602000Z",
          "latest_published_at": "2026-07-20T04:50:46.504000Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 5
        },
        {
          "name": "@ixo/slack",
          "exists": true,
          "license": null,
          "keywords": [],
          "ecosystem": "npm",
          "matches_repo": null,
          "registry_url": "https://www.npmjs.com/package/@ixo/slack",
          "is_deprecated": false,
          "latest_version": "1.0.0",
          "repository_url": null,
          "versions_count": 1,
          "total_downloads": null,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": 2,
          "monthly_downloads": 607,
          "first_published_at": "2026-02-12T11:02:24.233000Z",
          "latest_published_at": "2026-02-12T11:02:24.509000Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 163
        },
        {
          "name": "@ixo/common",
          "exists": true,
          "license": null,
          "keywords": [],
          "ecosystem": "npm",
          "matches_repo": true,
          "registry_url": "https://www.npmjs.com/package/@ixo/common",
          "is_deprecated": false,
          "latest_version": "1.2.0",
          "repository_url": "https://github.com/ixoworld/qiforge",
          "versions_count": 19,
          "total_downloads": null,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": 2,
          "monthly_downloads": 1109,
          "first_published_at": "2026-02-12T11:02:28.137000Z",
          "latest_published_at": "2026-07-08T04:27:01.454000Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 18
        },
        {
          "name": "@ixo/oracles-events",
          "exists": true,
          "license": null,
          "keywords": [],
          "ecosystem": "npm",
          "matches_repo": true,
          "registry_url": "https://www.npmjs.com/package/@ixo/oracles-events",
          "is_deprecated": false,
          "latest_version": "2.0.0",
          "repository_url": "https://github.com/ixoworld/qiforge",
          "versions_count": 7,
          "total_downloads": null,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": 2,
          "monthly_downloads": 1388,
          "first_published_at": "2025-08-02T15:48:57.932000Z",
          "latest_published_at": "2026-07-08T04:26:47.402000Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 18
        },
        {
          "name": "@ixo/logger",
          "exists": true,
          "license": null,
          "keywords": [],
          "ecosystem": "npm",
          "matches_repo": null,
          "registry_url": "https://www.npmjs.com/package/@ixo/logger",
          "is_deprecated": false,
          "latest_version": "0.0.2",
          "repository_url": null,
          "versions_count": 3,
          "total_downloads": null,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": 2,
          "monthly_downloads": 1205,
          "first_published_at": "2026-01-21T11:21:28.258000Z",
          "latest_published_at": "2026-02-11T07:19:56.743000Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 164
        },
        {
          "name": "@ixo/matrix",
          "exists": true,
          "license": null,
          "keywords": [],
          "ecosystem": "npm",
          "matches_repo": null,
          "registry_url": "https://www.npmjs.com/package/@ixo/matrix",
          "is_deprecated": false,
          "latest_version": "1.2.33",
          "repository_url": null,
          "versions_count": 8,
          "total_downloads": null,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": 2,
          "monthly_downloads": 708,
          "first_published_at": "2026-02-12T11:02:20.854000Z",
          "latest_published_at": "2026-05-11T10:46:15.606000Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 75
        },
        {
          "name": "@ixo/sqlite-saver",
          "exists": true,
          "license": null,
          "keywords": [],
          "ecosystem": "npm",
          "matches_repo": true,
          "registry_url": "https://www.npmjs.com/package/@ixo/sqlite-saver",
          "is_deprecated": false,
          "latest_version": "1.0.55",
          "repository_url": "https://github.com/ixoworld/qiforge",
          "versions_count": 7,
          "total_downloads": null,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": 2,
          "monthly_downloads": 914,
          "first_published_at": "2026-02-12T11:02:26.038000Z",
          "latest_published_at": "2026-07-19T15:18:07.890000Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 6
        },
        {
          "name": "@ixo/eslint-config",
          "exists": true,
          "license": null,
          "keywords": [],
          "ecosystem": "npm",
          "matches_repo": null,
          "registry_url": "https://www.npmjs.com/package/@ixo/eslint-config",
          "is_deprecated": false,
          "latest_version": "2.0.0",
          "repository_url": null,
          "versions_count": 2,
          "total_downloads": null,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": 2,
          "monthly_downloads": 590,
          "first_published_at": "2026-02-12T11:02:15.195000Z",
          "latest_published_at": "2026-02-16T12:42:51.314000Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 159
        }
      ]
    },
    "popularity": {
      "forks": 2,
      "stars": 4,
      "watchers": 2,
      "fork_history": {
        "days": [
          {
            "date": "2025-12-08",
            "count": 1
          },
          {
            "date": "2025-12-09",
            "count": 1
          }
        ],
        "complete": true,
        "collected": 2,
        "total_forks": 2
      },
      "star_history": null,
      "open_issues_and_prs": 12
    },
    "ai_readiness": {
      "has_nix": false,
      "example_dirs": [
        "examples"
      ],
      "has_llms_txt": false,
      "has_dockerfile": true,
      "has_mcp_signal": false,
      "bootstrap_files": [],
      "api_schema_files": [
        "packages/oracles-chain-client/src/client/claims/claims.graphql",
        "packages/oracles-chain-client/src/client/entities/gql/entities.graphql",
        "packages/oracles-chain-client/src/client/iid/idd.graphql"
      ],
      "has_devcontainer": false,
      "typecheck_configs": [
        "apps/app/tsconfig.json",
        "apps/qiforge-example/tsconfig.json",
        "packages/common/tsconfig.json",
        "packages/events/tsconfig.json",
        "packages/logger/tsconfig.json",
        "packages/matrix/tsconfig.json",
        "packages/oracle-runtime/tsconfig.json",
        "packages/oracles-chain-client/tsconfig.json",
        "packages/oracles-client-sdk/tsconfig.json",
        "packages/slack/tsconfig.json",
        "packages/sqlite-saver/tsconfig.json",
        "packages/ucan/tsconfig.json",
        "tsconfig.json"
      ],
      "toolchain_manifests": [],
      "largest_source_bytes": 125688,
      "source_files_sampled": 790,
      "oversized_source_files": 5,
      "agent_instruction_files": [
        "CLAUDE.md",
        "packages/oracles-chain-client/CLAUDE.md"
      ],
      "agent_instruction_max_bytes": 13072
    },
    "dependencies": {
      "manifests": [
        "package.json"
      ],
      "advisories": {
        "error": null,
        "scope": "published_package",
        "source": "osv",
        "findings": [],
        "collected": true,
        "malicious": [],
        "truncated": false,
        "by_severity": {},
        "advisory_count": 0,
        "affected_count": 0,
        "assessed_count": 20,
        "malicious_count": 0,
        "assessed_package": "npm:@ixo/ucan@2.1.0",
        "unassessed_count": 0,
        "direct_affected_count": 0
      },
      "ecosystems": [
        "npm"
      ],
      "dependencies": [
        {
          "name": "@blocknote/server-util",
          "manifest": "apps/app/package.json",
          "ecosystem": "npm",
          "version_constraint": "0.29.1"
        },
        {
          "name": "@composio/core",
          "manifest": "apps/app/package.json",
          "ecosystem": "npm",
          "version_constraint": "0.10.0"
        },
        {
          "name": "@composio/langchain",
          "manifest": "apps/app/package.json",
          "ecosystem": "npm",
          "version_constraint": "0.9.2"
        },
        {
          "name": "@ixo/common",
          "manifest": "apps/app/package.json",
          "ecosystem": "npm",
          "version_constraint": "^1.1.39"
        },
        {
          "name": "@ixo/editor",
          "manifest": "apps/app/package.json",
          "ecosystem": "npm",
          "version_constraint": "3.0.0-beta.11"
        },
        {
          "name": "@ixo/matrix",
          "manifest": "apps/app/package.json",
          "ecosystem": "npm",
          "version_constraint": "^1.2.33"
        },
        {
          "name": "@ixo/matrix-crdt",
          "manifest": "apps/app/package.json",
          "ecosystem": "npm",
          "version_constraint": "^1.1.0"
        },
        {
          "name": "@ixo/oracle-runtime",
          "manifest": "apps/app/package.json",
          "ecosystem": "npm",
          "version_constraint": "workspace:*"
        },
        {
          "name": "@ixo/oracles-chain-client",
          "manifest": "apps/app/package.json",
          "ecosystem": "npm",
          "version_constraint": "1.2.1"
        },
        {
          "name": "@ixo/oracles-events",
          "manifest": "apps/app/package.json",
          "ecosystem": "npm",
          "version_constraint": "1.0.4"
        },
        {
          "name": "@ixo/slack",
          "manifest": "apps/app/package.json",
          "ecosystem": "npm",
          "version_constraint": "1.0.0"
        },
        {
          "name": "@ixo/sqlite-saver",
          "manifest": "apps/app/package.json",
          "ecosystem": "npm",
          "version_constraint": "^1.0.52"
        },
        {
          "name": "@ixo/ucan",
          "manifest": "apps/app/package.json",
          "ecosystem": "npm",
          "version_constraint": "1.2.3"
        },
        {
          "name": "@langchain/community",
          "manifest": "apps/app/package.json",
          "ecosystem": "npm",
          "version_constraint": "1.1.28"
        },
        {
          "name": "@langchain/core",
          "manifest": "apps/app/package.json",
          "ecosystem": "npm",
          "version_constraint": "1.1.48"
        },
        {
          "name": "@langchain/langgraph",
          "manifest": "apps/app/package.json",
          "ecosystem": "npm",
          "version_constraint": "1.3.2"
        },
        {
          "name": "@langchain/langgraph-supervisor",
          "manifest": "apps/app/package.json",
          "ecosystem": "npm",
          "version_constraint": "1.0.3"
        },
        {
          "name": "@langchain/mcp-adapters",
          "manifest": "apps/app/package.json",
          "ecosystem": "npm",
          "version_constraint": "1.1.3"
        },
        {
          "name": "@nestjs/bullmq",
          "manifest": "apps/app/package.json",
          "ecosystem": "npm",
          "version_constraint": "^11.0.4"
        },
        {
          "name": "@nestjs/cache-manager",
          "manifest": "apps/app/package.json",
          "ecosystem": "npm",
          "version_constraint": "^3.1.2"
        },
        {
          "name": "@nestjs/common",
          "manifest": "apps/app/package.json",
          "ecosystem": "npm",
          "version_constraint": "^11.1.19"
        },
        {
          "name": "@nestjs/config",
          "manifest": "apps/app/package.json",
          "ecosystem": "npm",
          "version_constraint": "^4.0.4"
        },
        {
          "name": "@nestjs/core",
          "manifest": "apps/app/package.json",
          "ecosystem": "npm",
          "version_constraint": "^11.1.19"
        },
        {
          "name": "@nestjs/platform-express",
          "manifest": "apps/app/package.json",
          "ecosystem": "npm",
          "version_constraint": "^11.1.19"
        },
        {
          "name": "@nestjs/platform-socket.io",
          "manifest": "apps/app/package.json",
          "ecosystem": "npm",
          "version_constraint": "^11.1.19"
        },
        {
          "name": "@nestjs/schedule",
          "manifest": "apps/app/package.json",
          "ecosystem": "npm",
          "version_constraint": "^6.1.3"
        },
        {
          "name": "@nestjs/swagger",
          "manifest": "apps/app/package.json",
          "ecosystem": "npm",
          "version_constraint": "^11.4.2"
        },
        {
          "name": "@nestjs/throttler",
          "manifest": "apps/app/package.json",
          "ecosystem": "npm",
          "version_constraint": "^6.5.0"
        },
        {
          "name": "@nestjs/websockets",
          "manifest": "apps/app/package.json",
          "ecosystem": "npm",
          "version_constraint": "^11.1.19"
        },
        {
          "name": "@opentelemetry/sdk-node",
          "manifest": "apps/app/package.json",
          "ecosystem": "npm",
          "version_constraint": "^0.215.0"
        },
        {
          "name": "@types/pg",
          "manifest": "apps/app/package.json",
          "ecosystem": "npm",
          "version_constraint": "^8.11.14"
        },
        {
          "name": "@ucanto/client",
          "manifest": "apps/app/package.json",
          "ecosystem": "npm",
          "version_constraint": "^9.0.1"
        },
        {
          "name": "@ucanto/core",
          "manifest": "apps/app/package.json",
          "ecosystem": "npm",
          "version_constraint": "^10.0.1"
        },
        {
          "name": "@ucanto/interface",
          "manifest": "apps/app/package.json",
          "ecosystem": "npm",
          "version_constraint": "^10.0.1"
        },
        {
          "name": "@ucanto/principal",
          "manifest": "apps/app/package.json",
          "ecosystem": "npm",
          "version_constraint": "^9.0.1"
        },
        {
          "name": "@ucanto/server",
          "manifest": "apps/app/package.json",
          "ecosystem": "npm",
          "version_constraint": "^10.0.0"
        },
        {
          "name": "@ucanto/transport",
          "manifest": "apps/app/package.json",
          "ecosystem": "npm",
          "version_constraint": "^9.1.1"
        },
        {
          "name": "@ucanto/validator",
          "manifest": "apps/app/package.json",
          "ecosystem": "npm",
          "version_constraint": "^9.0.2"
        },
        {
          "name": "better-sqlite3",
          "manifest": "apps/app/package.json",
          "ecosystem": "npm",
          "version_constraint": "^12.9.0"
        },
        {
          "name": "bullmq",
          "manifest": "apps/app/package.json",
          "ecosystem": "npm",
          "version_constraint": "^5.76.2"
        },
        {
          "name": "cache-manager",
          "manifest": "apps/app/package.json",
          "ecosystem": "npm",
          "version_constraint": "^7.2.4"
        },
        {
          "name": "class-transformer",
          "manifest": "apps/app/package.json",
          "ecosystem": "npm",
          "version_constraint": "^0.5.1"
        },
        {
          "name": "class-validator",
          "manifest": "apps/app/package.json",
          "ecosystem": "npm",
          "version_constraint": "^0.14.1"
        },
        {
          "name": "cron-parser",
          "manifest": "apps/app/package.json",
          "ecosystem": "npm",
          "version_constraint": "^5.5.0"
        },
        {
          "name": "dotenv",
          "manifest": "apps/app/package.json",
          "ecosystem": "npm",
          "version_constraint": "^16.4.7"
        },
        {
          "name": "helmet",
          "manifest": "apps/app/package.json",
          "ecosystem": "npm",
          "version_constraint": "^8.1.0"
        },
        {
          "name": "ioredis",
          "manifest": "apps/app/package.json",
          "ecosystem": "npm",
          "version_constraint": "^5.6.1"
        },
        {
          "name": "ipfs-only-hash",
          "manifest": "apps/app/package.json",
          "ecosystem": "npm",
          "version_constraint": "^4.0.0"
        },
        {
          "name": "langchain",
          "manifest": "apps/app/package.json",
          "ecosystem": "npm",
          "version_constraint": "1.4.2"
        },
        {
          "name": "langsmith",
          "manifest": "apps/app/package.json",
          "ecosystem": "npm",
          "version_constraint": "^0.5.25"
        },
        {
          "name": "lodash-es",
          "manifest": "apps/app/package.json",
          "ecosystem": "npm",
          "version_constraint": "^4.17.21"
        },
        {
          "name": "marked",
          "manifest": "apps/app/package.json",
          "ecosystem": "npm",
          "version_constraint": "^18.0.2"
        },
        {
          "name": "matrix-js-sdk",
          "manifest": "apps/app/package.json",
          "ecosystem": "npm",
          "version_constraint": "^37.11.0"
        },
        {
          "name": "node-emoji",
          "manifest": "apps/app/package.json",
          "ecosystem": "npm",
          "version_constraint": "^2.2.0"
        },
        {
          "name": "reflect-metadata",
          "manifest": "apps/app/package.json",
          "ecosystem": "npm",
          "version_constraint": "^0.2.2"
        },
        {
          "name": "rxjs",
          "manifest": "apps/app/package.json",
          "ecosystem": "npm",
          "version_constraint": "^7.8.1"
        },
        {
          "name": "socket.io",
          "manifest": "apps/app/package.json",
          "ecosystem": "npm",
          "version_constraint": "4.8.3"
        },
        {
          "name": "yjs",
          "manifest": "apps/app/package.json",
          "ecosystem": "npm",
          "version_constraint": "^13.6.27"
        },
        {
          "name": "zod",
          "manifest": "apps/app/package.json",
          "ecosystem": "npm",
          "version_constraint": "^4.3.6"
        },
        {
          "name": "zod-to-json-schema",
          "manifest": "apps/app/package.json",
          "ecosystem": "npm",
          "version_constraint": "^3.25.2"
        },
        {
          "name": "@ixo/oracle-runtime",
          "manifest": "apps/qiforge-example/package.json",
          "ecosystem": "npm",
          "version_constraint": "workspace:*"
        },
        {
          "name": "@nestjs/common",
          "manifest": "apps/qiforge-example/package.json",
          "ecosystem": "npm",
          "version_constraint": "^11.1.19"
        },
        {
          "name": "dotenv",
          "manifest": "apps/qiforge-example/package.json",
          "ecosystem": "npm",
          "version_constraint": "^16.4.7"
        },
        {
          "name": "ioredis",
          "manifest": "apps/qiforge-example/package.json",
          "ecosystem": "npm",
          "version_constraint": "^5.6.1"
        },
        {
          "name": "langchain",
          "manifest": "apps/qiforge-example/package.json",
          "ecosystem": "npm",
          "version_constraint": "1.4.2"
        },
        {
          "name": "matrix-js-sdk",
          "manifest": "apps/qiforge-example/package.json",
          "ecosystem": "npm",
          "version_constraint": "^37.11.0"
        },
        {
          "name": "reflect-metadata",
          "manifest": "apps/qiforge-example/package.json",
          "ecosystem": "npm",
          "version_constraint": "^0.2.2"
        },
        {
          "name": "@cosmjs/proto-signing",
          "manifest": "packages/common/package.json",
          "ecosystem": "npm",
          "version_constraint": "^0.39.0"
        },
        {
          "name": "@cosmjs/stargate",
          "manifest": "packages/common/package.json",
          "ecosystem": "npm",
          "version_constraint": "^0.39.0"
        },
        {
          "name": "@ixo/impactxclient-sdk",
          "manifest": "packages/common/package.json",
          "ecosystem": "npm",
          "version_constraint": "^3.0.0"
        },
        {
          "name": "@ixo/logger",
          "manifest": "packages/common/package.json",
          "ecosystem": "npm",
          "version_constraint": "workspace:*"
        },
        {
          "name": "@ixo/matrix",
          "manifest": "packages/common/package.json",
          "ecosystem": "npm",
          "version_constraint": "workspace:*"
        },
        {
          "name": "@ixo/oracles-chain-client",
          "manifest": "packages/common/package.json",
          "ecosystem": "npm",
          "version_constraint": "workspace:*"
        },
        {
          "name": "@langchain/community",
          "manifest": "packages/common/package.json",
          "ecosystem": "npm",
          "version_constraint": "1.1.28"
        },
        {
          "name": "@langchain/core",
          "manifest": "packages/common/package.json",
          "ecosystem": "npm",
          "version_constraint": "1.1.48"
        },
        {
          "name": "@langchain/langgraph",
          "manifest": "packages/common/package.json",
          "ecosystem": "npm",
          "version_constraint": "1.3.2"
        },
        {
          "name": "@langchain/langgraph-checkpoint",
          "manifest": "packages/common/package.json",
          "ecosystem": "npm",
          "version_constraint": "1.0.2"
        },
        {
          "name": "@langchain/langgraph-checkpoint-sqlite",
          "manifest": "packages/common/package.json",
          "ecosystem": "npm",
          "version_constraint": "1.0.1"
        },
        {
          "name": "@langchain/openai",
          "manifest": "packages/common/package.json",
          "ecosystem": "npm",
          "version_constraint": "1.4.7"
        },
        {
          "name": "@langchain/textsplitters",
          "manifest": "packages/common/package.json",
          "ecosystem": "npm",
          "version_constraint": "1.0.1"
        },
        {
          "name": "@tavily/core",
          "manifest": "packages/common/package.json",
          "ecosystem": "npm",
          "version_constraint": "0.7.2"
        },
        {
          "name": "axios",
          "manifest": "packages/common/package.json",
          "ecosystem": "npm",
          "version_constraint": "^1.7.9"
        },
        {
          "name": "axios-retry",
          "manifest": "packages/common/package.json",
          "ecosystem": "npm",
          "version_constraint": "^4.5.0"
        },
        {
          "name": "class-transformer",
          "manifest": "packages/common/package.json",
          "ecosystem": "npm",
          "version_constraint": "^0.5.1"
        },
        {
          "name": "class-validator",
          "manifest": "packages/common/package.json",
          "ecosystem": "npm",
          "version_constraint": "^0.14.1"
        },
        {
          "name": "dotenv",
          "manifest": "packages/common/package.json",
          "ecosystem": "npm",
          "version_constraint": "^16.4.5"
        },
        {
          "name": "duck-duck-scrape",
          "manifest": "packages/common/package.json",
          "ecosystem": "npm",
          "version_constraint": "^2.2.5"
        },
        {
          "name": "html-to-text",
          "manifest": "packages/common/package.json",
          "ecosystem": "npm",
          "version_constraint": "9.0.5"
        },
        {
          "name": "langchain",
          "manifest": "packages/common/package.json",
          "ecosystem": "npm",
          "version_constraint": "1.4.2"
        },
        {
          "name": "langsmith",
          "manifest": "packages/common/package.json",
          "ecosystem": "npm",
          "version_constraint": "^0.5.25"
        },
        {
          "name": "mammoth",
          "manifest": "packages/common/package.json",
          "ecosystem": "npm",
          "version_constraint": "1.12.0"
        },
        {
          "name": "node-emoji",
          "manifest": "packages/common/package.json",
          "ecosystem": "npm",
          "version_constraint": "^2.2.0"
        },
        {
          "name": "openai",
          "manifest": "packages/common/package.json",
          "ecosystem": "npm",
          "version_constraint": "^6.34.0"
        },
        {
          "name": "pdfjs-dist",
          "manifest": "packages/common/package.json",
          "ecosystem": "npm",
          "version_constraint": "^5.4.296"
        },
        {
          "name": "playwright",
          "manifest": "packages/common/package.json",
          "ecosystem": "npm",
          "version_constraint": "^1.59.1"
        },
        {
          "name": "store",
          "manifest": "packages/common/package.json",
          "ecosystem": "npm",
          "version_constraint": "^2.0.12"
        },
        {
          "name": "zod",
          "manifest": "packages/common/package.json",
          "ecosystem": "npm",
          "version_constraint": "^4.3.6"
        },
        {
          "name": "eventemitter2",
          "manifest": "packages/events/package.json",
          "ecosystem": "npm",
          "version_constraint": "6.4.9"
        },
        {
          "name": "winston",
          "manifest": "packages/logger/package.json",
          "ecosystem": "npm",
          "version_constraint": "^3.14.2"
        },
        {
          "name": "@ixo/logger",
          "manifest": "packages/matrix/package.json",
          "ecosystem": "npm",
          "version_constraint": "workspace:*"
        },
        {
          "name": "@langchain/langgraph-checkpoint",
          "manifest": "packages/matrix/package.json",
          "ecosystem": "npm",
          "version_constraint": "1.0.2"
        },
        {
          "name": "dotenv",
          "manifest": "packages/matrix/package.json",
          "ecosystem": "npm",
          "version_constraint": "^17.2.0"
        },
        {
          "name": "marked",
          "manifest": "packages/matrix/package.json",
          "ecosystem": "npm",
          "version_constraint": "^16.4.0"
        },
        {
          "name": "matrix-bot-sdk",
          "manifest": "packages/matrix/package.json",
          "ecosystem": "npm",
          "version_constraint": "npm:@ixo/matrix-bot-sdk@^0.8.0-ixo.14"
        },
        {
          "name": "matrix-js-sdk",
          "manifest": "packages/matrix/package.json",
          "ecosystem": "npm",
          "version_constraint": "^37.11.0"
        },
        {
          "name": "superjson",
          "manifest": "packages/matrix/package.json",
          "ecosystem": "npm",
          "version_constraint": "1.13.3"
        },
        {
          "name": "@blocknote/server-util",
          "manifest": "packages/oracle-runtime/package.json",
          "ecosystem": "npm",
          "version_constraint": "0.29.1"
        },
        {
          "name": "@composio/core",
          "manifest": "packages/oracle-runtime/package.json",
          "ecosystem": "npm",
          "version_constraint": "0.10.0"
        },
        {
          "name": "@composio/langchain",
          "manifest": "packages/oracle-runtime/package.json",
          "ecosystem": "npm",
          "version_constraint": "0.9.2"
        },
        {
          "name": "@ixo/common",
          "manifest": "packages/oracle-runtime/package.json",
          "ecosystem": "npm",
          "version_constraint": "workspace:*"
        },
        {
          "name": "@ixo/editor",
          "manifest": "packages/oracle-runtime/package.json",
          "ecosystem": "npm",
          "version_constraint": "6.0.1"
        },
        {
          "name": "@ixo/matrix",
          "manifest": "packages/oracle-runtime/package.json",
          "ecosystem": "npm",
          "version_constraint": "workspace:*"
        },
        {
          "name": "@ixo/matrix-crdt",
          "manifest": "packages/oracle-runtime/package.json",
          "ecosystem": "npm",
          "version_constraint": "^1.2.5"
        },
        {
          "name": "@ixo/oracles-chain-client",
          "manifest": "packages/oracle-runtime/package.json",
          "ecosystem": "npm",
          "version_constraint": "workspace:*"
        },
        {
          "name": "@ixo/oracles-events",
          "manifest": "packages/oracle-runtime/package.json",
          "ecosystem": "npm",
          "version_constraint": "workspace:*"
        },
        {
          "name": "@ixo/slack",
          "manifest": "packages/oracle-runtime/package.json",
          "ecosystem": "npm",
          "version_constraint": "1.0.0"
        },
        {
          "name": "@ixo/sqlite-saver",
          "manifest": "packages/oracle-runtime/package.json",
          "ecosystem": "npm",
          "version_constraint": "workspace:*"
        },
        {
          "name": "@ixo/ucan",
          "manifest": "packages/oracle-runtime/package.json",
          "ecosystem": "npm",
          "version_constraint": "workspace:*"
        },
        {
          "name": "@langchain/core",
          "manifest": "packages/oracle-runtime/package.json",
          "ecosystem": "npm",
          "version_constraint": "1.1.48"
        },
        {
          "name": "@langchain/langgraph",
          "manifest": "packages/oracle-runtime/package.json",
          "ecosystem": "npm",
          "version_constraint": "1.3.2"
        },
        {
          "name": "@langchain/mcp-adapters",
          "manifest": "packages/oracle-runtime/package.json",
          "ecosystem": "npm",
          "version_constraint": "1.1.3"
        },
        {
          "name": "@nestjs/bullmq",
          "manifest": "packages/oracle-runtime/package.json",
          "ecosystem": "npm",
          "version_constraint": "^11.0.4"
        },
        {
          "name": "@nestjs/cache-manager",
          "manifest": "packages/oracle-runtime/package.json",
          "ecosystem": "npm",
          "version_constraint": "^3.1.2"
        },
        {
          "name": "@nestjs/common",
          "manifest": "packages/oracle-runtime/package.json",
          "ecosystem": "npm",
          "version_constraint": "^11.1.19"
        },
        {
          "name": "@nestjs/config",
          "manifest": "packages/oracle-runtime/package.json",
          "ecosystem": "npm",
          "version_constraint": "^4.0.4"
        },
        {
          "name": "@nestjs/core",
          "manifest": "packages/oracle-runtime/package.json",
          "ecosystem": "npm",
          "version_constraint": "^11.1.19"
        },
        {
          "name": "@nestjs/platform-express",
          "manifest": "packages/oracle-runtime/package.json",
          "ecosystem": "npm",
          "version_constraint": "^11.1.19"
        },
        {
          "name": "@nestjs/platform-socket.io",
          "manifest": "packages/oracle-runtime/package.json",
          "ecosystem": "npm",
          "version_constraint": "^11.1.19"
        },
        {
          "name": "@nestjs/schedule",
          "manifest": "packages/oracle-runtime/package.json",
          "ecosystem": "npm",
          "version_constraint": "^6.1.3"
        },
        {
          "name": "@nestjs/swagger",
          "manifest": "packages/oracle-runtime/package.json",
          "ecosystem": "npm",
          "version_constraint": "^11.4.2"
        },
        {
          "name": "@nestjs/throttler",
          "manifest": "packages/oracle-runtime/package.json",
          "ecosystem": "npm",
          "version_constraint": "^6.5.0"
        },
        {
          "name": "@nestjs/websockets",
          "manifest": "packages/oracle-runtime/package.json",
          "ecosystem": "npm",
          "version_constraint": "^11.1.19"
        },
        {
          "name": "better-sqlite3",
          "manifest": "packages/oracle-runtime/package.json",
          "ecosystem": "npm",
          "version_constraint": "^12.9.0"
        },
        {
          "name": "bullmq",
          "manifest": "packages/oracle-runtime/package.json",
          "ecosystem": "npm",
          "version_constraint": "^5.76.2"
        },
        {
          "name": "cache-manager",
          "manifest": "packages/oracle-runtime/package.json",
          "ecosystem": "npm",
          "version_constraint": "^7.2.4"
        },
        {
          "name": "class-transformer",
          "manifest": "packages/oracle-runtime/package.json",
          "ecosystem": "npm",
          "version_constraint": "^0.5.1"
        },
        {
          "name": "class-validator",
          "manifest": "packages/oracle-runtime/package.json",
          "ecosystem": "npm",
          "version_constraint": "^0.14.1"
        },
        {
          "name": "cron-parser",
          "manifest": "packages/oracle-runtime/package.json",
          "ecosystem": "npm",
          "version_constraint": "^5.5.0"
        },
        {
          "name": "gray-matter",
          "manifest": "packages/oracle-runtime/package.json",
          "ecosystem": "npm",
          "version_constraint": "^4.0.3"
        },
        {
          "name": "ioredis",
          "manifest": "packages/oracle-runtime/package.json",
          "ecosystem": "npm",
          "version_constraint": "^5.10.1"
        },
        {
          "name": "js-tiktoken",
          "manifest": "packages/oracle-runtime/package.json",
          "ecosystem": "npm",
          "version_constraint": "^1.0.21"
        },
        {
          "name": "langchain",
          "manifest": "packages/oracle-runtime/package.json",
          "ecosystem": "npm",
          "version_constraint": "1.4.2"
        },
        {
          "name": "matrix-js-sdk",
          "manifest": "packages/oracle-runtime/package.json",
          "ecosystem": "npm",
          "version_constraint": "^37.11.0"
        },
        {
          "name": "node-emoji",
          "manifest": "packages/oracle-runtime/package.json",
          "ecosystem": "npm",
          "version_constraint": "^2.2.0"
        },
        {
          "name": "socket.io",
          "manifest": "packages/oracle-runtime/package.json",
          "ecosystem": "npm",
          "version_constraint": "4.8.3"
        },
        {
          "name": "yjs",
          "manifest": "packages/oracle-runtime/package.json",
          "ecosystem": "npm",
          "version_constraint": "^13.6.27"
        },
        {
          "name": "zod",
          "manifest": "packages/oracle-runtime/package.json",
          "ecosystem": "npm",
          "version_constraint": "^4.4.3"
        },
        {
          "name": "@cosmjs/crypto",
          "manifest": "packages/oracles-chain-client/package.json",
          "ecosystem": "npm",
          "version_constraint": "0.39.0"
        },
        {
          "name": "@cosmjs/encoding",
          "manifest": "packages/oracles-chain-client/package.json",
          "ecosystem": "npm",
          "version_constraint": "0.39.0"
        },
        {
          "name": "@cosmjs/proto-signing",
          "manifest": "packages/oracles-chain-client/package.json",
          "ecosystem": "npm",
          "version_constraint": "0.39.0"
        },
        {
          "name": "@cosmjs/stargate",
          "manifest": "packages/oracles-chain-client/package.json",
          "ecosystem": "npm",
          "version_constraint": "0.39.0"
        },
        {
          "name": "@ixo/did-provider-x",
          "manifest": "packages/oracles-chain-client/package.json",
          "ecosystem": "npm",
          "version_constraint": "^0.1.1"
        },
        {
          "name": "@ixo/impactxclient-sdk",
          "manifest": "packages/oracles-chain-client/package.json",
          "ecosystem": "npm",
          "version_constraint": "3.0.0"
        },
        {
          "name": "@ixo/logger",
          "manifest": "packages/oracles-chain-client/package.json",
          "ecosystem": "npm",
          "version_constraint": "workspace:*"
        },
        {
          "name": "@ixo/matrixclient-sdk",
          "manifest": "packages/oracles-chain-client/package.json",
          "ecosystem": "npm",
          "version_constraint": "^3.0.0"
        },
        {
          "name": "@ixo/ucan",
          "manifest": "packages/oracles-chain-client/package.json",
          "ecosystem": "npm",
          "version_constraint": "workspace:*"
        },
        {
          "name": "@veramo/core",
          "manifest": "packages/oracles-chain-client/package.json",
          "ecosystem": "npm",
          "version_constraint": "^7.0.0"
        },
        {
          "name": "@veramo/credential-ld",
          "manifest": "packages/oracles-chain-client/package.json",
          "ecosystem": "npm",
          "version_constraint": "^7.0.0"
        },
        {
          "name": "@veramo/credential-w3c",
          "manifest": "packages/oracles-chain-client/package.json",
          "ecosystem": "npm",
          "version_constraint": "^7.0.0"
        },
        {
          "name": "@veramo/did-manager",
          "manifest": "packages/oracles-chain-client/package.json",
          "ecosystem": "npm",
          "version_constraint": "^7.0.0"
        },
        {
          "name": "@veramo/did-provider-key",
          "manifest": "packages/oracles-chain-client/package.json",
          "ecosystem": "npm",
          "version_constraint": "^7.0.0"
        },
        {
          "name": "@veramo/did-resolver",
          "manifest": "packages/oracles-chain-client/package.json",
          "ecosystem": "npm",
          "version_constraint": "^7.0.0"
        },
        {
          "name": "@veramo/key-manager",
          "manifest": "packages/oracles-chain-client/package.json",
          "ecosystem": "npm",
          "version_constraint": "^7.0.0"
        },
        {
          "name": "@veramo/kms-local",
          "manifest": "packages/oracles-chain-client/package.json",
          "ecosystem": "npm",
          "version_constraint": "^7.0.0"
        },
        {
          "name": "ajv",
          "manifest": "packages/oracles-chain-client/package.json",
          "ecosystem": "npm",
          "version_constraint": "8.17.1"
        },
        {
          "name": "ajv-formats",
          "manifest": "packages/oracles-chain-client/package.json",
          "ecosystem": "npm",
          "version_constraint": "3.0.1"
        },
        {
          "name": "axios",
          "manifest": "packages/oracles-chain-client/package.json",
          "ecosystem": "npm",
          "version_constraint": "1.18.1"
        },
        {
          "name": "axios-retry",
          "manifest": "packages/oracles-chain-client/package.json",
          "ecosystem": "npm",
          "version_constraint": "4.5.0"
        },
        {
          "name": "bs58",
          "manifest": "packages/oracles-chain-client/package.json",
          "ecosystem": "npm",
          "version_constraint": "^6.0.0"
        },
        {
          "name": "did-resolver",
          "manifest": "packages/oracles-chain-client/package.json",
          "ecosystem": "npm",
          "version_constraint": "4.1.0"
        },
        {
          "name": "dotenv",
          "manifest": "packages/oracles-chain-client/package.json",
          "ecosystem": "npm",
          "version_constraint": "^17.2.3"
        },
        {
          "name": "eciesjs",
          "manifest": "packages/oracles-chain-client/package.json",
          "ecosystem": "npm",
          "version_constraint": "^0.4.15"
        },
        {
          "name": "graphql",
          "manifest": "packages/oracles-chain-client/package.json",
          "ecosystem": "npm",
          "version_constraint": "^16.10.0"
        },
        {
          "name": "graphql-request",
          "manifest": "packages/oracles-chain-client/package.json",
          "ecosystem": "npm",
          "version_constraint": "7.1.2"
        },
        {
          "name": "graphql-tag",
          "manifest": "packages/oracles-chain-client/package.json",
          "ecosystem": "npm",
          "version_constraint": "^2.12.6"
        },
        {
          "name": "jose",
          "manifest": "packages/oracles-chain-client/package.json",
          "ecosystem": "npm",
          "version_constraint": "^6.0.8"
        },
        {
          "name": "limiter",
          "manifest": "packages/oracles-chain-client/package.json",
          "ecosystem": "npm",
          "version_constraint": "2.1.0"
        },
        {
          "name": "store",
          "manifest": "packages/oracles-chain-client/package.json",
          "ecosystem": "npm",
          "version_constraint": "2.0.12"
        },
        {
          "name": "zod",
          "manifest": "packages/oracles-chain-client/package.json",
          "ecosystem": "npm",
          "version_constraint": "^4.3.6"
        },
        {
          "name": "@ixo/oracles-chain-client",
          "manifest": "packages/oracles-client-sdk/package.json",
          "ecosystem": "npm",
          "version_constraint": "workspace:*"
        },
        {
          "name": "@ixo/oracles-events",
          "manifest": "packages/oracles-client-sdk/package.json",
          "ecosystem": "npm",
          "version_constraint": "workspace:*"
        },
        {
          "name": "@tanstack/react-query",
          "manifest": "packages/oracles-client-sdk/package.json",
          "ecosystem": "npm",
          "version_constraint": "^5.29.0"
        },
        {
          "name": "eventsource",
          "manifest": "packages/oracles-client-sdk/package.json",
          "ecosystem": "npm",
          "version_constraint": "^3.0.6"
        },
        {
          "name": "jose",
          "manifest": "packages/oracles-client-sdk/package.json",
          "ecosystem": "npm",
          "version_constraint": "^6.1.0"
        },
        {
          "name": "livekit-client",
          "manifest": "packages/oracles-client-sdk/package.json",
          "ecosystem": "npm",
          "version_constraint": "^2.15.6"
        },
        {
          "name": "socket.io-client",
          "manifest": "packages/oracles-client-sdk/package.json",
          "ecosystem": "npm",
          "version_constraint": "^4.8.1"
        },
        {
          "name": "zod-to-json-schema",
          "manifest": "packages/oracles-client-sdk/package.json",
          "ecosystem": "npm",
          "version_constraint": "^3.24.5"
        },
        {
          "name": "@ixo/logger",
          "manifest": "packages/slack/package.json",
          "ecosystem": "npm",
          "version_constraint": "workspace:*"
        },
        {
          "name": "@slack/bolt",
          "manifest": "packages/slack/package.json",
          "ecosystem": "npm",
          "version_constraint": "^4.6.0"
        },
        {
          "name": "@tryfabric/mack",
          "manifest": "packages/slack/package.json",
          "ecosystem": "npm",
          "version_constraint": "^1.2.1"
        },
        {
          "name": "slackify-markdown",
          "manifest": "packages/slack/package.json",
          "ecosystem": "npm",
          "version_constraint": "5.0.0"
        },
        {
          "name": "@ixo/logger",
          "manifest": "packages/sqlite-saver/package.json",
          "ecosystem": "npm",
          "version_constraint": "workspace:*"
        },
        {
          "name": "@langchain/core",
          "manifest": "packages/sqlite-saver/package.json",
          "ecosystem": "npm",
          "version_constraint": "1.1.48"
        },
        {
          "name": "@langchain/langgraph-checkpoint",
          "manifest": "packages/sqlite-saver/package.json",
          "ecosystem": "npm",
          "version_constraint": "1.0.2"
        },
        {
          "name": "better-sqlite3",
          "manifest": "packages/sqlite-saver/package.json",
          "ecosystem": "npm",
          "version_constraint": "^11.10.0"
        },
        {
          "name": "@ucanto/client",
          "manifest": "packages/ucan/package.json",
          "ecosystem": "npm",
          "version_constraint": "9.0.2"
        },
        {
          "name": "@ucanto/core",
          "manifest": "packages/ucan/package.json",
          "ecosystem": "npm",
          "version_constraint": "10.4.6"
        },
        {
          "name": "@ucanto/interface",
          "manifest": "packages/ucan/package.json",
          "ecosystem": "npm",
          "version_constraint": "11.0.1"
        },
        {
          "name": "@ucanto/principal",
          "manifest": "packages/ucan/package.json",
          "ecosystem": "npm",
          "version_constraint": "9.0.3"
        },
        {
          "name": "@ucanto/server",
          "manifest": "packages/ucan/package.json",
          "ecosystem": "npm",
          "version_constraint": "11.0.3"
        },
        {
          "name": "@ucanto/transport",
          "manifest": "packages/ucan/package.json",
          "ecosystem": "npm",
          "version_constraint": "9.2.1"
        },
        {
          "name": "@ucanto/validator",
          "manifest": "packages/ucan/package.json",
          "ecosystem": "npm",
          "version_constraint": "10.0.1"
        },
        {
          "name": "vitest",
          "manifest": "packages/vitest-config/package.json",
          "ecosystem": "npm",
          "version_constraint": "^3.2.3"
        },
        {
          "name": "@vitest/coverage-v8",
          "manifest": "packages/vitest-config/package.json",
          "ecosystem": "npm",
          "version_constraint": "^3.2.3"
        },
        {
          "name": "unplugin-swc",
          "manifest": "packages/vitest-config/package.json",
          "ecosystem": "npm",
          "version_constraint": "^1.5.9"
        }
      ],
      "all_dependencies": {
        "error": "GitHub dependency-graph SBOM unavailable (404); the dependency graph may be disabled for this repository",
        "source": null,
        "packages": [],
        "collected": false,
        "truncated": false,
        "total_count": null,
        "direct_count": null,
        "indirect_count": null
      }
    },
    "maintainership": {
      "issues": {
        "open_prs": 12,
        "merged_prs": 215,
        "open_issues": 0,
        "closed_ratio": null,
        "closed_issues": 0,
        "closed_unmerged_prs": 12
      },
      "bus_factor": 2,
      "bot_contributors": 1,
      "top_contributors": [
        {
          "type": "User",
          "login": "youssefhany-ixo",
          "commits": 220,
          "avatar_url": "https://avatars.githubusercontent.com/u/174365759?v=4"
        },
        {
          "type": "User",
          "login": "yousefhany77",
          "commits": 131,
          "avatar_url": "https://avatars.githubusercontent.com/u/59293857?v=4"
        },
        {
          "type": "User",
          "login": "Michael-Ixo",
          "commits": 90,
          "avatar_url": "https://avatars.githubusercontent.com/u/113350374?v=4"
        },
        {
          "type": "User",
          "login": "LukePetzer-ixo",
          "commits": 34,
          "avatar_url": "https://avatars.githubusercontent.com/u/158566348?v=4"
        },
        {
          "type": "User",
          "login": "ig-shaun",
          "commits": 7,
          "avatar_url": "https://avatars.githubusercontent.com/u/9947762?v=4"
        },
        {
          "type": "User",
          "login": "claude",
          "commits": 6,
          "avatar_url": "https://avatars.githubusercontent.com/u/81847?v=4"
        },
        {
          "type": "User",
          "login": "MichaelPretorius",
          "commits": 6,
          "avatar_url": "https://avatars.githubusercontent.com/u/51056511?v=4"
        },
        {
          "type": "User",
          "login": "turbobot-temp",
          "commits": 3,
          "avatar_url": "https://avatars.githubusercontent.com/u/145653950?v=4"
        }
      ],
      "contributors_sampled": 8,
      "top_contributor_share": 0.443
    },
    "quality_signals": {
      "has_ci": true,
      "has_tests": true,
      "ci_workflows": [
        "ci.yml",
        "node-ci-build.yml",
        "npm-package-publish.yaml"
      ],
      "has_docs_dir": true,
      "linter_configs": [
        "eslint.config.mjs"
      ],
      "has_editorconfig": false,
      "has_linter_config": true,
      "has_precommit_config": false
    },
    "security_signals": {
      "lockfiles": [
        "pnpm-lock.yaml"
      ],
      "scorecard": {
        "checks": [
          {
            "name": "Binary-Artifacts",
            "score": 10,
            "reason": "no binaries found in the repo",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#binary-artifacts"
          },
          {
            "name": "Branch-Protection",
            "score": 6,
            "reason": "branch protection is not maximal on development and all release branches",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#branch-protection"
          },
          {
            "name": "CI-Tests",
            "score": 9,
            "reason": "21 out of 23 merged PRs checked by a CI test -- score normalized to 9",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#ci-tests"
          },
          {
            "name": "CII-Best-Practices",
            "score": 0,
            "reason": "no effort to earn an OpenSSF best practices badge detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#cii-best-practices"
          },
          {
            "name": "Code-Review",
            "score": 1,
            "reason": "Found 4/23 approved changesets -- score normalized to 1",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#code-review"
          },
          {
            "name": "Contributors",
            "score": 10,
            "reason": "project has 4 contributing companies or organizations",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#contributors"
          },
          {
            "name": "Dangerous-Workflow",
            "score": 10,
            "reason": "no dangerous workflow patterns detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dangerous-workflow"
          },
          {
            "name": "Dependency-Update-Tool",
            "score": 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": 0,
            "reason": "dependency not pinned by hash detected -- score normalized to 0",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#pinned-dependencies"
          },
          {
            "name": "SAST",
            "score": 0,
            "reason": "SAST tool is not run on all commits -- score normalized to 0",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#sast"
          },
          {
            "name": "Security-Policy",
            "score": 0,
            "reason": "security policy file not detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#security-policy"
          },
          {
            "name": "Signed-Releases",
            "score": null,
            "reason": "no releases found",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#signed-releases"
          },
          {
            "name": "Token-Permissions",
            "score": 0,
            "reason": "detected GitHub workflow tokens with excessive permissions",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#token-permissions"
          },
          {
            "name": "Vulnerabilities",
            "score": 0,
            "reason": "93 existing vulnerabilities detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#vulnerabilities"
          }
        ],
        "commit": "3ec4b54ef39c913744436309c83e8b95f351901a",
        "ran_at": "2026-07-26T04:50:52Z",
        "aggregate_score": 4.1,
        "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-25T10:35:04Z",
      "oldest_open_prs": [
        {
          "number": 210,
          "created_at": "2026-06-12T04:53:08Z",
          "last_comment_at": "2026-07-08T04:39:06Z",
          "last_comment_author": "cursor"
        },
        {
          "number": 211,
          "created_at": "2026-06-15T03:43:28Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 212,
          "created_at": "2026-06-17T15:10:42Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 221,
          "created_at": "2026-07-12T05:52:26Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 222,
          "created_at": "2026-07-12T07:57:37Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 224,
          "created_at": "2026-07-14T01:12:33Z",
          "last_comment_at": "2026-07-15T00:18:29Z",
          "last_comment_author": "cursor"
        },
        {
          "number": 228,
          "created_at": "2026-07-19T02:53:12Z",
          "last_comment_at": "2026-07-19T02:53:16Z",
          "last_comment_author": "cursor"
        },
        {
          "number": 230,
          "created_at": "2026-07-20T01:28:42Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 234,
          "created_at": "2026-07-21T17:38:06Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 237,
          "created_at": "2026-07-23T15:18:58Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 239,
          "created_at": "2026-07-25T00:57:02Z",
          "last_comment_at": "2026-07-25T00:57:06Z",
          "last_comment_author": "cursor"
        },
        {
          "number": 240,
          "created_at": "2026-07-26T04:25:34Z",
          "last_comment_at": "2026-07-26T04:25:38Z",
          "last_comment_author": "cursor"
        }
      ],
      "last_merged_pr_at": "2026-07-24T04:43:44Z",
      "ci_last_conclusion": "SUCCESS",
      "oldest_open_issues": []
    }
  },
  "config": {
    "disabled_metrics": [],
    "disabled_categories": [],
    "disabled_components": {}
  },
  "source": {
    "url": "https://github.com/ixoworld/qiforge",
    "host": "github.com",
    "name": "qiforge",
    "owner": "ixoworld"
  },
  "metrics": {
    "overall": {
      "key": "overall",
      "band": "good",
      "name": "Overall health",
      "note": null,
      "notes": [],
      "value": 70,
      "inputs": {
        "security": 53,
        "vitality": 94,
        "community": 37,
        "governance": 70,
        "engineering": 85
      },
      "components": []
    },
    "categories": [
      {
        "key": "vitality",
        "band": "excellent",
        "name": "Vitality",
        "value": 94,
        "weight": 0.22,
        "metrics": [
          {
            "key": "development_activity",
            "band": "excellent",
            "name": "Development activity",
            "note": null,
            "notes": [],
            "value": 90,
            "inputs": {
              "commits_last_year": 358,
              "human_commit_share": 1,
              "days_since_last_push": 0,
              "active_weeks_last_year": 38
            },
            "components": [
              {
                "key": "push_recency",
                "name": "Push recency",
                "detail": "last push 0 days ago",
                "points": 36,
                "status": "met",
                "details": [
                  {
                    "code": "push_recency",
                    "params": {
                      "days": 0
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_cadence",
                "name": "Commit cadence",
                "detail": "38/52 weeks with commits",
                "points": 26.3,
                "status": "partial",
                "details": [
                  {
                    "code": "commit_cadence_weeks",
                    "params": {
                      "weeks": 38
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_volume",
                "name": "Commit volume",
                "detail": "358 commits in the last year",
                "points": 18,
                "status": "met",
                "details": [
                  {
                    "code": "commits_last_year",
                    "params": {
                      "count": 358
                    }
                  }
                ],
                "max_points": 18
              },
              {
                "key": "openssf_scorecard_maintained",
                "name": "OpenSSF Scorecard: Maintained",
                "detail": "30 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "release_discipline",
            "band": "excellent",
            "name": "Release discipline",
            "note": "Excluded from scoring (no data or not applicable): OpenSSF Scorecard: Signed-Releases. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "openssf_scorecard_signed_releases"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 100,
            "inputs": {
              "releases_count": 100,
              "latest_release_tag": "@ixo/sqlite-saver@1.0.55",
              "releases_from_tags": false,
              "days_since_latest_release": 6,
              "mean_days_between_releases": 3.7
            },
            "components": [
              {
                "key": "ships_releases",
                "name": "Ships releases",
                "detail": "100 releases published",
                "points": 27,
                "status": "met",
                "details": [
                  {
                    "code": "releases_published",
                    "params": {
                      "count": 100
                    }
                  }
                ],
                "max_points": 27
              },
              {
                "key": "release_recency",
                "name": "Release recency",
                "detail": "latest release 6 days ago",
                "points": 36,
                "status": "met",
                "details": [
                  {
                    "code": "release_recency",
                    "params": {
                      "days": 6
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "release_cadence",
                "name": "Release cadence",
                "detail": "a release every ~3.7 days",
                "points": 27,
                "status": "met",
                "details": [
                  {
                    "code": "release_cadence",
                    "params": {
                      "gap": 3.7
                    }
                  }
                ],
                "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": "maintained",
              "guards": [],
              "signals": [],
              "red_flag": false,
              "multiplier_pct": 100,
              "declared_reason": null,
              "unverified_reason": null,
              "unanswered_open_prs": null,
              "unanswered_open_issues": null,
              "days_since_last_merged_pr": null,
              "days_since_last_human_commit": 2,
              "days_since_last_human_commit_is_floor": false
            },
            "components": [
              {
                "key": "project_is_still_maintained",
                "name": "Project is still maintained",
                "detail": "last human commit 2 days ago",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "abandonment_maintained",
                    "params": {
                      "days": 2
                    }
                  }
                ],
                "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": 37,
        "weight": 0.18,
        "metrics": [
          {
            "key": "popularity",
            "band": "critical",
            "name": "Popularity & adoption",
            "note": null,
            "notes": [],
            "value": 8,
            "inputs": {
              "forks": 2,
              "stars": 4,
              "watchers": 2,
              "growth_state": "unverified",
              "growth_factor_pct": 100,
              "growth_unverified_reason": "no_history"
            },
            "components": [
              {
                "key": "stars",
                "name": "Stars",
                "detail": "4 stars",
                "points": 7.7,
                "status": "partial",
                "details": [
                  {
                    "code": "stars",
                    "params": {
                      "count": 4
                    }
                  }
                ],
                "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": "2 watchers",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "watchers",
                    "params": {
                      "count": 2
                    }
                  }
                ],
                "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 (Apache-2.0)",
                "points": 22.5,
                "status": "met",
                "details": [
                  {
                    "code": "license_standard",
                    "params": {}
                  },
                  {
                    "code": "license_spdx",
                    "params": {
                      "spdx": "Apache-2.0"
                    }
                  }
                ],
                "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": 66,
            "inputs": {
              "packages": [
                "@ixo/ucan",
                "@ixo/slack",
                "@ixo/common",
                "@ixo/oracles-events",
                "@ixo/logger",
                "@ixo/matrix",
                "@ixo/sqlite-saver",
                "@ixo/eslint-config"
              ],
              "dependents": null,
              "ecosystems": "npm",
              "total_downloads": null,
              "monthly_downloads": 9537
            },
            "components": [
              {
                "key": "monthly_downloads",
                "name": "Monthly downloads",
                "detail": "9,537 downloads/month across npm",
                "points": 53.1,
                "status": "partial",
                "details": [
                  {
                    "code": "downloads_monthly",
                    "params": {
                      "count": 9537,
                      "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": "good",
        "name": "Sustainability & Governance",
        "value": 70,
        "weight": 0.24,
        "metrics": [
          {
            "key": "maintainer_resilience",
            "band": "moderate",
            "name": "Maintainer resilience (bus factor)",
            "note": null,
            "notes": [],
            "value": 58,
            "inputs": {
              "bus_factor": 2,
              "contributors_sampled": 8,
              "top_contributor_share": 0.443
            },
            "components": [
              {
                "key": "bus_factor",
                "name": "Bus factor",
                "detail": "2 contributor(s) cover half of all commits",
                "points": 25.2,
                "status": "partial",
                "details": [
                  {
                    "code": "bus_factor",
                    "params": {
                      "count": 2
                    }
                  }
                ],
                "max_points": 54
              },
              {
                "key": "commit_distribution",
                "name": "Commit distribution",
                "detail": "top contributor authored 44% of commits",
                "points": 12.5,
                "status": "partial",
                "details": [
                  {
                    "code": "top_contributor_share",
                    "params": {
                      "share": 44
                    }
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributor_breadth",
                "name": "Contributor breadth",
                "detail": "8 contributors",
                "points": 10.8,
                "status": "partial",
                "details": [
                  {
                    "code": "contributors_sampled",
                    "params": {
                      "count": 8
                    }
                  }
                ],
                "max_points": 13.5
              },
              {
                "key": "openssf_scorecard_contributors",
                "name": "OpenSSF Scorecard: Contributors",
                "detail": "project has 4 contributing companies or organizations",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "responsiveness",
            "band": "good",
            "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": 71,
            "inputs": {
              "merged_prs": 215,
              "open_issues": 0,
              "closed_issues": 0,
              "issue_closed_ratio": null,
              "closed_unmerged_prs": 12
            },
            "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": "215/227 decided PRs merged",
                "points": 36.2,
                "status": "partial",
                "details": [
                  {
                    "code": "decided_prs_merged",
                    "params": {
                      "merged": 215,
                      "decided": 227
                    }
                  }
                ],
                "max_points": 38.25
              },
              {
                "key": "openssf_scorecard_code_review",
                "name": "OpenSSF Scorecard: Code-Review",
                "detail": "Found 4/23 approved changesets -- score normalized to 1",
                "points": 1.5,
                "status": "partial",
                "details": [],
                "max_points": 15
              }
            ]
          },
          {
            "key": "stewardship",
            "band": "moderate",
            "name": "Ownership & stewardship",
            "note": null,
            "notes": [],
            "value": 60,
            "inputs": {
              "followers": 9,
              "owner_type": "Organization",
              "is_verified": null,
              "owner_login": "ixoworld",
              "public_repos": 28,
              "account_age_days": 2817
            },
            "components": [
              {
                "key": "ownership_backing",
                "name": "Ownership backing",
                "detail": "organization-owned",
                "points": 30,
                "status": "met",
                "details": [
                  {
                    "code": "owner_organization",
                    "params": {}
                  }
                ],
                "max_points": 30
              },
              {
                "key": "verified_domain",
                "name": "Verified domain",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 20
              },
              {
                "key": "owner_reach",
                "name": "Owner reach",
                "detail": "9 followers of ixoworld",
                "points": 7.2,
                "status": "partial",
                "details": [
                  {
                    "code": "owner_followers",
                    "params": {
                      "count": 9,
                      "login": "ixoworld"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "track_record",
                "name": "Track record",
                "detail": "28 public repos, account ~7 yr old",
                "points": 22.6,
                "status": "partial",
                "details": [
                  {
                    "code": "public_repos",
                    "params": {
                      "count": 28
                    }
                  },
                  {
                    "code": "account_age_years",
                    "params": {
                      "years": 7
                    }
                  }
                ],
                "max_points": 25
              }
            ]
          },
          {
            "key": "package_maintenance",
            "band": "excellent",
            "name": "Package maintenance",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "packages": [
                "@ixo/ucan",
                "@ixo/slack",
                "@ixo/common",
                "@ixo/oracles-events",
                "@ixo/logger",
                "@ixo/matrix",
                "@ixo/sqlite-saver",
                "@ixo/eslint-config"
              ],
              "ecosystems": "npm",
              "any_deprecated": false,
              "min_days_since_publish": 5
            },
            "components": [
              {
                "key": "published_resolvable",
                "name": "Published & resolvable",
                "detail": "8 package(s) on npm",
                "points": 25,
                "status": "met",
                "details": [
                  {
                    "code": "packages_published",
                    "params": {
                      "count": 8,
                      "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": "19 published versions",
                "points": 20,
                "status": "met",
                "details": [
                  {
                    "code": "published_versions",
                    "params": {
                      "count": 19
                    }
                  }
                ],
                "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": "excellent",
        "name": "Engineering Quality",
        "value": 85,
        "weight": 0.2,
        "metrics": [
          {
            "key": "engineering_practices",
            "band": "good",
            "name": "Engineering practices",
            "note": null,
            "notes": [],
            "value": 82,
            "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": "3 workflow(s)",
                "points": 24,
                "status": "met",
                "details": [
                  {
                    "code": "ci_workflows",
                    "params": {
                      "count": 3
                    }
                  }
                ],
                "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.mjs",
                "points": 16,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "eslint.config.mjs"
                    }
                  }
                ],
                "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": "21 out of 23 merged PRs checked by a CI test -- score normalized to 9",
                "points": 18,
                "status": "partial",
                "details": [],
                "max_points": 20
              }
            ]
          },
          {
            "key": "documentation",
            "band": "excellent",
            "name": "Documentation",
            "note": null,
            "notes": [],
            "value": 90,
            "inputs": {
              "topics": [
                "agentic-ai",
                "ixo"
              ],
              "has_wiki": false,
              "homepage": "https://www.ixo.world/",
              "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": "https://www.ixo.world/",
                "points": 15,
                "status": "met",
                "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": "2 topics",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "topics_count",
                    "params": {
                      "count": 2
                    }
                  }
                ],
                "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": 53,
        "weight": 0.16,
        "metrics": [
          {
            "key": "security_posture",
            "band": "at_risk",
            "name": "Security posture",
            "note": "Excluded from scoring (no data or not applicable): Packaging, Signed-Releases. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "packaging",
                    "signed_releases"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 41,
            "inputs": {
              "source": "openssf_scorecard",
              "checks_evaluated": 16,
              "scorecard_version": "v5.5.0",
              "checks_inconclusive": 2,
              "scorecard_aggregate": 4.1
            },
            "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 is not maximal on development and all release branches",
                "points": 4.5,
                "status": "partial",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "ci_tests",
                "name": "CI-Tests",
                "detail": "21 out of 23 merged PRs checked by a CI test -- score normalized to 9",
                "points": 2.2,
                "status": "partial",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "cii_best_practices",
                "name": "CII-Best-Practices",
                "detail": "no effort to earn an OpenSSF best practices badge detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "code_review",
                "name": "Code-Review",
                "detail": "Found 4/23 approved changesets -- score normalized to 1",
                "points": 0.8,
                "status": "partial",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "contributors",
                "name": "Contributors",
                "detail": "project has 4 contributing companies or organizations",
                "points": 2.5,
                "status": "met",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "dangerous_workflow",
                "name": "Dangerous-Workflow",
                "detail": "no dangerous workflow patterns detected",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              },
              {
                "key": "dependency_update_tool",
                "name": "Dependency-Update-Tool",
                "detail": "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 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "sast",
                "name": "SAST",
                "detail": "SAST tool is not run on all commits -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "security_policy",
                "name": "Security-Policy",
                "detail": "security policy file not detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "signed_releases",
                "name": "Signed-Releases",
                "detail": "no releases found",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 7.5
              },
              {
                "key": "token_permissions",
                "name": "Token-Permissions",
                "detail": "detected GitHub workflow tokens with excessive permissions",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "vulnerabilities",
                "name": "Vulnerabilities",
                "detail": "93 existing vulnerabilities detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              }
            ]
          },
          {
            "key": "dependency_advisories",
            "band": "excellent",
            "name": "Dependency advisories",
            "note": "Excluded from scoring (no data or not applicable): No advisories left outstanding. Remaining weights renormalized. Matched the npm:@ixo/ucan@2.1.0 runtime dependency closure — what installing the published package pulls in — 20 packages. Reachability is not analyzed.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "no_advisories_left_outstanding"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              },
              {
                "code": "advisories_scope_published",
                "params": {
                  "package": "npm:@ixo/ucan@2.1.0",
                  "assessed": 20
                }
              },
              {
                "code": "advisories_reachability",
                "params": {}
              }
            ],
            "value": 100,
            "inputs": {
              "source": "osv",
              "advisories": 0,
              "affected_packages": 0,
              "assessed_packages": 20,
              "unassessed_packages": 0,
              "affected_by_severity": "none",
              "direct_affected_packages": 0
            },
            "components": [
              {
                "key": "direct_dependencies_free_of_known_advisories",
                "name": "Direct dependencies free of known advisories",
                "detail": "no direct dependency carries a known advisory",
                "points": 35,
                "status": "met",
                "details": [
                  {
                    "code": "no_direct_advisories",
                    "params": {}
                  }
                ],
                "max_points": 35
              },
              {
                "key": "indirect_dependencies_free_of_known_advisories",
                "name": "Indirect dependencies free of known advisories",
                "detail": "no indirect dependency carries a known advisory",
                "points": 25,
                "status": "met",
                "details": [
                  {
                    "code": "no_indirect_advisories",
                    "params": {}
                  }
                ],
                "max_points": 25
              },
              {
                "key": "no_advisories_left_outstanding",
                "name": "No advisories left outstanding",
                "detail": "no advisory carries a publication date",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "advisories_no_publication_date",
                    "params": {}
                  }
                ],
                "max_points": 40
              }
            ]
          },
          {
            "key": "malicious_dependencies",
            "band": "excellent",
            "name": "Malicious dependencies",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "source": "osv",
              "meaning": "reported as a malicious package by the OpenSSF corpus; the remedy is removal or moving off the compromised name, never an upgrade of the same artifact. Versions the registry has since pulled are listed but not scored",
              "packages": [],
              "red_flag": false,
              "assessed_packages": 20,
              "malicious_packages": 0,
              "direct_malicious_packages": 0,
              "withdrawn_malicious_packages": 0,
              "installable_malicious_packages": 0
            },
            "components": [
              {
                "key": "no_dependency_reported_as_a_malicious_package",
                "name": "No dependency reported as a malicious package",
                "detail": "no dependency is reported as a malicious package",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "no_malicious_dependencies",
                    "params": {}
                  }
                ],
                "max_points": 100
              }
            ]
          },
          {
            "key": "high_risk_jurisdiction_exposure",
            "band": "excellent",
            "name": "High-Risk Jurisdiction Exposure",
            "note": "Only high-confidence self-published location evidence affects this multiplier. Ambiguous matches are review-only; country evidence is not proof of nationality, citizenship, legal registration, malicious intent, or sanctions status.",
            "notes": [
              {
                "code": "jurisdiction_evidence_limits",
                "params": {}
              }
            ],
            "value": 100,
            "inputs": {
              "meaning": "self-published location evidence; not nationality or citizenship",
              "red_flag": false,
              "exposures": [],
              "policy_countries": [
                "Russia",
                "Iran",
                "North Korea"
              ],
              "review_only_matches": 0,
              "assessed_self_published_locations": 9
            },
            "components": [
              {
                "key": "policy_exposure_multiplier",
                "name": "Policy exposure multiplier",
                "detail": "no confirmed policy-scope location match",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "jurisdiction_no_match",
                    "params": {}
                  }
                ],
                "max_points": 100
              }
            ]
          }
        ],
        "description": "Are visible security and supply-chain practices strong, with no malicious dependency and no unresolved high-risk jurisdiction exposure?"
      },
      {
        "key": "ai_readiness",
        "band": "good",
        "name": "AI Readiness",
        "value": 78,
        "weight": 0,
        "metrics": [
          {
            "key": "ai_agent_context",
            "band": "excellent",
            "name": "Agent context & guidance",
            "note": null,
            "notes": [],
            "value": 85,
            "inputs": {
              "has_llms_txt": false,
              "legible_history_share": 0.98,
              "agent_instruction_files": [
                "CLAUDE.md",
                "packages/oracles-chain-client/CLAUDE.md"
              ],
              "agent_instruction_max_bytes": 13072
            },
            "components": [
              {
                "key": "agent_instructions",
                "name": "Agent instructions",
                "detail": "CLAUDE.md, packages/oracles-chain-client/CLAUDE.md",
                "points": 45,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "CLAUDE.md, packages/oracles-chain-client/CLAUDE.md"
                    }
                  }
                ],
                "max_points": 45
              },
              {
                "key": "machine_readable_docs_llms_txt",
                "name": "Machine-readable docs (llms.txt)",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 15
              },
              {
                "key": "legible_commit_history",
                "name": "Legible commit history",
                "detail": "98 of 100 human commits state their intent (structured subject or explanatory body)",
                "points": 40,
                "status": "met",
                "details": [
                  {
                    "code": "legible_history",
                    "params": {
                      "legible": 98,
                      "sampled": 100
                    }
                  }
                ],
                "max_points": 40
              }
            ]
          },
          {
            "key": "ai_verify_loop",
            "band": "moderate",
            "name": "Verify loop (build / test / typecheck)",
            "note": null,
            "notes": [],
            "value": 64,
            "inputs": {
              "has_nix": false,
              "has_tests": true,
              "lockfiles": [
                "pnpm-lock.yaml"
              ],
              "has_dockerfile": true,
              "typed_language": true,
              "bootstrap_files": [],
              "has_devcontainer": false,
              "has_linter_config": true,
              "typecheck_configs": [
                "apps/app/tsconfig.json",
                "apps/qiforge-example/tsconfig.json",
                "packages/common/tsconfig.json",
                "packages/events/tsconfig.json",
                "packages/logger/tsconfig.json",
                "packages/matrix/tsconfig.json",
                "packages/oracle-runtime/tsconfig.json",
                "packages/oracles-chain-client/tsconfig.json",
                "packages/oracles-client-sdk/tsconfig.json",
                "packages/slack/tsconfig.json",
                "packages/sqlite-saver/tsconfig.json",
                "packages/ucan/tsconfig.json",
                "tsconfig.json"
              ],
              "agent_commit_share": 0.1,
              "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.mjs",
                "points": 11,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "eslint.config.mjs"
                    }
                  }
                ],
                "max_points": 11
              },
              {
                "key": "static_type_checking",
                "name": "Static type checking",
                "detail": "apps/app/tsconfig.json, apps/qiforge-example/tsconfig.json, packages/common/tsconfig.json, packages/events/tsconfig.json, packages/logger/tsconfig.json, packages/matrix/tsconfig.json, packages/oracle-runtime/tsconfig.json, packages/oracles-chain-client/tsconfig.json, packages/oracles-client-sdk/tsconfig.json, packages/slack/tsconfig.json, packages/sqlite-saver/tsconfig.json, packages/ucan/tsconfig.json, tsconfig.json",
                "points": 11,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "apps/app/tsconfig.json, apps/qiforge-example/tsconfig.json, packages/common/tsconfig.json, packages/events/tsconfig.json, packages/logger/tsconfig.json, packages/matrix/tsconfig.json, packages/oracle-runtime/tsconfig.json, packages/oracles-chain-client/tsconfig.json, packages/oracles-client-sdk/tsconfig.json, packages/slack/tsconfig.json, packages/sqlite-saver/tsconfig.json, packages/ucan/tsconfig.json, tsconfig.json"
                    }
                  }
                ],
                "max_points": 11
              },
              {
                "key": "reproducible_environment",
                "name": "Reproducible environment",
                "detail": "Dockerfile, lockfile",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "Dockerfile, lockfile"
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "demonstrated_agent_practice",
                "name": "Demonstrated agent practice",
                "detail": "10 of the last 100 commits agent-authored or agent-credited",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "agent_authored_commits",
                    "params": {
                      "count": 10,
                      "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 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "ai_code_legibility",
            "band": "excellent",
            "name": "Code legibility for models",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "primary_language": "TypeScript",
              "largest_source_bytes": 125688,
              "source_files_sampled": 790,
              "oversized_source_files": 5
            },
            "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": "5/790 source files over 60KB",
                "points": 54.7,
                "status": "partial",
                "details": [
                  {
                    "code": "oversized_source_files",
                    "params": {
                      "kb": 60,
                      "sampled": 790,
                      "oversized": 5
                    }
                  }
                ],
                "max_points": 55
              }
            ]
          },
          {
            "key": "ai_interfaces",
            "band": "good",
            "name": "Machine-readable interfaces",
            "note": null,
            "notes": [],
            "value": 80,
            "inputs": {
              "example_dirs": [
                "examples"
              ],
              "has_mcp_signal": false,
              "api_schema_files": [
                "packages/oracles-chain-client/src/client/claims/claims.graphql",
                "packages/oracles-chain-client/src/client/entities/gql/entities.graphql",
                "packages/oracles-chain-client/src/client/iid/idd.graphql"
              ]
            },
            "components": [
              {
                "key": "api_schema_openapi_graphql_proto",
                "name": "API schema (OpenAPI/GraphQL/proto)",
                "detail": "packages/oracles-chain-client/src/client/claims/claims.graphql, packages/oracles-chain-client/src/client/entities/gql/entities.graphql, packages/oracles-chain-client/src/client/iid/idd.graphql",
                "points": 40,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "packages/oracles-chain-client/src/client/claims/claims.graphql, packages/oracles-chain-client/src/client/entities/gql/entities.graphql, packages/oracles-chain-client/src/client/iid/idd.graphql"
                    }
                  }
                ],
                "max_points": 40
              },
              {
                "key": "mcp_server",
                "name": "MCP server",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 20
              },
              {
                "key": "runnable_examples",
                "name": "Runnable examples",
                "detail": "examples",
                "points": 40,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "examples"
                    }
                  }
                ],
                "max_points": 40
              }
            ]
          }
        ],
        "description": "How well is the repo equipped to be developed and maintained with AI coding agents? An independent, experimental badge — weight 0.0, so it is surfaced on its own and does not affect the overall health score."
      }
    ],
    "metrics_version": "1.13.0"
  },
  "warnings": [
    "Star history unavailable: GitHub GraphQL error: Resource not accessible by personal access token",
    "GitHub dependency-graph SBOM unavailable (404); the dependency graph may be disabled for this repository"
  ],
  "report_type": "repository",
  "generated_at": "2026-07-26T04:51:09.475034Z",
  "schema_version": "0.27.0",
  "badge_url": "https://raw.githubusercontent.com/inspect-software/badges/main/v1/i/ixoworld/qiforge.svg",
  "full_name": "ixoworld/qiforge",
  "license_state": "standard",
  "license_spdx": "Apache-2.0"
}

Scores are signals, not warranties. They reflect publicly visible practices on GitHub — not a code audit, and not a security guarantee.

Missing data is excluded and weights renormalized, never scored as zero. Methodology is versioned and open: metrics v1.13.0, schema v0.27.0 — full methodology · metrics wiki.

How one result sits in the wider record: aggregate statisticsnpm.