# Paket Upgrade Path Calculator

> Paket Upgrade Path Calculator is a paid API for AI agents from paket.halowerk.com, paid per call via x402, $0.004/call, status unknown (last checked 2026-09-15).

Given a current and target version of a package, returns the ordered list of intermediate major-version stops required to safely upgrade without skipping major versions.

## Facts

- Endpoint: POST https://paket.halowerk.com/v1/upgrade-path
- Price: $0.004/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-15
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/paket-upgrade-path-calculator-8f90df1c
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_ey9z5WRPupNBqcvdbPCFQ

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability paket-upgrade-path-calculator-8f90df1c -d '<json body>'
```

Example prompt: We're on version 2.4.1 of react-router and want to upgrade to the latest — can you give me the ordered list of major-version stops we need to pass through so we don't skip any migration guides?

## When to prefer this

Use this endpoint when an agent needs to plan a safe multi-major upgrade and must not skip major versions due to breaking changes or required migration steps. Prefer it over simple version comparison tools when the user is several major versions behind and needs an explicit ordered sequence of intermediate stops, not just the latest version number.

## Known failure modes

- Package name not found in any supported ecosystem — returns 404 or package-not-found error
- Current or target version does not exist for the package — returns version-not-found error
- Current version is already at or ahead of target — returns empty path or no-upgrade-needed response
- Malformed version string (non-semver) — returns validation error
- Target version is not a published release — returns error indicating unrecognised target

## How this service works

Turns "we are on 2.4.1 and want to be current" into an ordered list of stops. The rule it enforces is that no major version is skipped: going from 2 to 5 means stopping at the last release of 3 and the last release of 4, because that is where the migration notes live and where the warnings about the next major are published.

## Output

An ordered list of package version identifiers representing each mandatory stop on the upgrade path, anchored at the last release of each intermediate major version between the current and target versions. Each stop corresponds to where migration notes and deprecation warnings are published.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "name": {
   "type": "string",
   "maxLength": 300,
   "minLength": 1
  },
  "system": {
   "enum": [
    "npm",
    "pypi",
    "maven",
    "go",
    "cargo",
    "nuget",
    "rubygems"
   ],
   "type": "string"
  },
  "to_version": {
   "type": "string",
   "maxLength": 60,
   "description": "Target version. Defaults to the newest stable release."
  },
  "from_version": {
   "type": "string",
   "maxLength": 60,
   "minLength": 1,
   "description": "The version currently installed."
  },
  "include_prereleases": {
   "type": "boolean",
   "default": false
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/paket-upgrade-path-calculator-8f90df1c/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from paket.halowerk.com](https://www.zero.xyz/host/paket.halowerk.com/llms.txt)
