generated: '2026-07-15' method: generated source: openapi/verdaccio-npm-registry-api-openapi.yml description: Recommended x-agentic-access execution contracts, classified heuristically from the OpenAPI. A governance starting point for exposing this API to AI agents — review and bind audience per deployment. See research/curity/agentic-governance/. summary: operations: 24 by_action_class: connected: 13 acting: 11 by_consequence: read: 13 write: 10 safety-critical: 1 human_in_the_loop_required: 1 operations: - path: /-/ping method: get operationId: ping x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /-/whoami method: get operationId: whoami x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /-/user/{org_couchdb_user} method: get operationId: getUser x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /-/user/{org_couchdb_user} method: put operationId: addOrLoginUser x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /-/npm/v1/user method: get operationId: getProfile x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /-/npm/v1/user method: post operationId: updateProfile x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /-/npm/v1/tokens method: get operationId: listTokens x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /-/npm/v1/tokens method: post operationId: createToken x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /-/npm/v1/tokens/token/{tokenKey} method: delete operationId: deleteToken x-agentic-access: action-class: acting consequence: safety-critical subject: required audience: null token: max-ttl: 120 exchange: true purpose-required: true proof-of-possession: true escalation: human-in-the-loop: required audit: required - path: /-/v1/search method: get operationId: searchPackages x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /{package} method: get operationId: getPackageManifest x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /{package} method: put operationId: publishPackage x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /{package}/{version} method: get operationId: getPackageByVersion x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /{package}/-rev/{revision} method: put operationId: updatePackageRevision x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /{package}/-/{filename}/-rev/{revision} method: delete operationId: deleteTarball x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /{package}/-/{filename} method: get operationId: getPackageTarball x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /-/package/{package}/dist-tags method: get operationId: getDistTags x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /-/package/{package}/dist-tags/{tag} method: put operationId: setDistTag x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /-/package/{package}/dist-tags/{tag} method: delete operationId: deleteDistTag x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /{package}/{tag} method: put operationId: setDistTagShort x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /-/v1/login method: post operationId: initiateLogin x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /-/v1/login_cli/{sessionId} method: get operationId: pollLoginSession x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /-/v1/done method: get operationId: completeLogin x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /-/v1/done/{sessionId} method: get operationId: completeLoginSession x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none