[{"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true},"description":"Step 1 of PackageMaze repository setup. Call first to learn what PackageMaze can see: supported Artifact Protocols, accessible Feeds, credential names, policy notes, MCP authorization limits, and facts to gather before planning.","input_schema":{"additionalProperties":false,"properties":{},"required":[],"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema"},"input_shape":"{}","name":"get_setup_context","output_schema":{"additionalProperties":true,"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema"},"output_shape":"object","required_scopes":[],"title":"Get setup context"},{"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true},"description":"Step 2 of PackageMaze repository setup. Call after read-only repository discovery and before editing repository files, GitHub Secrets, PackageMaze state, global tool config, or Git state. Submit every discovered package area, including npm, PyPI/Python, CI install workflows, CI publish workflows, and unsupported protocols. Project context is optional: repository.name as the canonical host owner/name, never a local clone directory, and project_areas[].project_file per area. For package installs inside Docker image builds, submit workflow install with variant inside_docker_build. Returns safe repository-file changes, Product State-backed access readiness and proposals, external prerequisites, diagnostics, and follow-up questions. After applying requested repository-file changes, call review_repository_setup before saying setup is done.","input_schema":{"additionalProperties":false,"properties":{"ci_workflows":{"items":{"type":"object"},"type":"array"},"organization_id":{"type":"string"},"project_areas":{"items":{"type":"object"},"type":"array"},"repository":{"type":"object"},"setup_variants":{"items":{"type":"object"},"type":"array"}},"required":[],"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema"},"input_shape":"{ repository?: { name?: string, url?: string, root_path?: string, default_branch?: string }, project_areas?: Array<{ path: string, artifact_protocol?: string | null, feed_id?: string | null, feed_base_url?: string | null, package_manager?: string | null, package_name?: string | null, project_file?: string | null, manifests?: Array<string | { path: string, bytes?: number, truncated?: boolean, content_excerpt?: string, parsed?: object }>, package_client_configs?: Array<string | { path: string, bytes?: number, truncated?: boolean, content_excerpt?: string, parsed?: object }>, lockfiles?: string[], dependency_names?: string[], current_sources?: Array<{ kind?: string | null, url: string }>, publishes?: boolean | null, ci_install?: boolean | null, ci_publish?: boolean | null }>, ci_workflows?: Array<{ path: string, jobs?: string[], commands?: string[], package_managers?: string[], secret_names?: string[], installs?: boolean | null, publishes?: boolean | null }>, setup_variants?: Array<{ workflow: \"install\", variant: \"inside_docker_build\", feed_id?: string, artifact_protocol?: \"npm\" | \"pypi\", package_client?: \"npm\" | \"pnpm\" | \"pip\" | \"uv-pip\", workflow_pattern?: string, ref_pattern?: string, environment?: string, event_name?: string }> }","name":"plan_repository_setup","output_schema":{"additionalProperties":true,"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema"},"output_shape":"object","required_scopes":[],"title":"Plan repository setup"},{"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true},"description":"Step 3 of PackageMaze repository setup. Call after planning and proposed or applied repository-file changes, before telling the user setup is done. Submit rich project_areas/ci_workflows when available, or discovered_surfaces for command/workflow evidence. Project context is optional: repository.name as the canonical host owner/name and project_areas[].project_file per area. This review checks coverage, external prerequisites, unsupported protocols/tools, and secret safety, then returns confidence, diagnostics, and follow-up questions.","input_schema":{"additionalProperties":false,"properties":{"applied_changes":{"items":{"type":"object"},"type":"array"},"ci_workflows":{"items":{"type":"object"},"type":"array"},"discovered_surfaces":{"items":{"type":"object"},"type":"array"},"external_prerequisites":{"items":{"type":"object"},"type":"array"},"organization_id":{"type":"string"},"project_areas":{"items":{"type":"object"},"type":"array"},"proposed_changes":{"items":{"type":"object"},"type":"array"},"repository":{"type":"object"}},"required":[],"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema"},"input_shape":"{ repository?: { name?: string, url?: string, root_path?: string, default_branch?: string }, project_areas?: Array<{ path: string, artifact_protocol?: string | null, feed_id?: string | null, feed_base_url?: string | null, package_manager?: string | null, package_name?: string | null, project_file?: string | null, manifests?: Array<string | { path: string, bytes?: number, truncated?: boolean, content_excerpt?: string, parsed?: object }>, package_client_configs?: Array<string | { path: string, bytes?: number, truncated?: boolean, content_excerpt?: string, parsed?: object }>, lockfiles?: string[], dependency_names?: string[], current_sources?: Array<{ kind?: string | null, url: string }>, publishes?: boolean | null, ci_install?: boolean | null, ci_publish?: boolean | null }>, ci_workflows?: Array<{ path: string, jobs?: string[], commands?: string[], package_managers?: string[], secret_names?: string[], installs?: boolean | null, publishes?: boolean | null }>, discovered_surfaces?: Array<{ path?: string, kind?: string, name?: string, command?: string, file_excerpt?: string, metadata?: object }>, proposed_changes?: Array<{ path: string, kind?: string, summary?: string, content_excerpt?: string, diff_excerpt?: string }>, applied_changes?: Array<{ path: string, kind?: string, summary?: string, content_excerpt?: string, diff_excerpt?: string }>, external_prerequisites?: Array<{ kind?: string, name?: string, status?: string }> }","name":"review_repository_setup","output_schema":{"additionalProperties":true,"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema"},"output_shape":"object","required_scopes":[],"title":"Review repository setup"},{"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"description":"Read-only PackageMaze Build report for one CI run attempt, selected by its Organization-scoped Build number. Returns the canonical Build URL, OIDC exchange attempts, minted Tokens, observed package-client activity, Package Usage and Resolution History, Publish Sessions, upload sessions, publish jobs, and publish audit events visible to PackageMaze for the authorized Organization and Feed scope. Does not infer activity that bypassed PackageMaze or return Token secrets, auth headers, raw OIDC claims, or package-client credentials.","input_schema":{"additionalProperties":false,"properties":{"build_number":{"minimum":1,"type":"integer"},"include_trust_evidence":{"type":"boolean"},"limit":{"maximum":200,"minimum":1,"type":"integer"},"organization_id":{"type":"string"},"since":{"type":"string"}},"required":["build_number"],"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema"},"input_shape":"{ organization_id?: string, build_number: number, since?: string, limit?: number, include_trust_evidence?: boolean }","name":"get_build_report","output_schema":{"additionalProperties":true,"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema"},"output_shape":"object","required_scopes":[],"title":"Get Build report"},{"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"description":"Read-only PackageMaze package activity evidence for the authorized Organization. Returns Package Usage History and Package Resolution History with typed User, User Agent, or Organization Token ownership, source labels, recorded GitHub Actions links, and redacted trust evidence. The source filter also matches owner usernames and Agent names. Does not return Token secrets, auth headers, raw OIDC claims, raw provenance payloads, or package-client credentials.","input_schema":{"additionalProperties":false,"properties":{"limit":{"maximum":500,"minimum":1,"type":"integer"},"build_number":{"minimum":1,"type":"integer"},"detail":{"enum":["summary","events"],"type":"string"},"include_trust_evidence":{"type":"boolean"},"offset":{"minimum":0,"type":"integer"},"organization_id":{"type":"string"},"package_name":{"type":"string"},"query":{"type":"string"},"repository":{"type":"string"},"run_id":{"type":"string"},"since":{"type":"string"},"source":{"type":"string"},"source_type":{"enum":["all","first_party","proxied_upstream"],"type":"string"},"workflow":{"type":"string"}},"required":[],"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema"},"input_shape":"{ organization_id?: string, query?: string, package_name?: string, repository?: string, workflow?: string, run_id?: string, build_number?: number, source?: string, source_type?: \"all\" | \"first_party\" | \"proxied_upstream\", since?: string, limit?: number, offset?: number, detail?: \"summary\" | \"events\", include_trust_evidence?: boolean }","name":"get_package_activity","output_schema":{"additionalProperties":true,"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema"},"output_shape":"object","required_scopes":[],"title":"Get package activity"},{"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"description":"Read-only inventory of the PackageMaze Feeds this authenticated MCP principal can access, optionally filtered by Artifact Protocol. Each Feed reports its Artifact Protocol, base URL, upstream proxying, Minimum Age Policy, CI-only Direct Publish policy, Direct Package Precedence, configured Reserved Package Namespaces, License Policy summary, Yanked Artifact Policy state, Native Code Policy state, Attestation Policy state, hosted package count, and most recent package name. At most 25 Feeds per call; when has_more is true, pass next_cursor back as cursor for the next page. Does not return Token secrets or package contents.","input_schema":{"additionalProperties":false,"properties":{"artifact_protocol":{"enum":["npm","pypi"],"type":"string"},"cursor":{"type":"string"}},"required":[],"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema"},"input_shape":"{ artifact_protocol?: \"npm\" | \"pypi\", cursor?: string }","name":"list_feeds","output_schema":{"additionalProperties":true,"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema"},"output_shape":"object","required_scopes":[],"title":"List Feeds"},{"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"description":"Find whether and where a package is hosted across the PackageMaze Feeds this MCP Agent Authorization can access, matching a name or name prefix. Returns one result per package name (deduplicated across Feeds) with the Feeds carrying it, whether each is first-party or proxied upstream, version count, latest version and publish time, and last catalog activity. For a complete-name Reserved Package Namespace match, explains Direct Package Precedence, upstream blocks, and External exceptions per Feed. Returns package names and bounded policy explanations only - never descriptions, READMEs, Token secrets, or package contents.","input_schema":{"additionalProperties":false,"properties":{"artifact_protocol":{"enum":["npm","pypi"],"type":"string"},"feed_id":{"type":"string"},"limit":{"maximum":50,"minimum":1,"type":"integer"},"query":{"maxLength":256,"minLength":1,"type":"string"}},"required":["query"],"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema"},"input_shape":"{ query: string, feed_id?: string, artifact_protocol?: \"npm\" | \"pypi\", limit?: number }","name":"search_packages","output_schema":{"additionalProperties":true,"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema"},"output_shape":"object","required_scopes":[],"title":"Search packages"},{"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"description":"Detail for one package in a PackageMaze Feed this MCP Agent Authorization can access: identity (name, Feed, Artifact Protocol, first-party or proxied upstream), versions newest-first (publish time, durable Publish Attribution, delisted and policy-held flags with the holding policy, declared license, download count, trust status), bounded page-Artifact inventory when it fits, total version count, a 30-day consumers summary (Token purposes, top workflows, last resolved), and the recent Biography - its recorded story in this Organization (serve-time holds and denials, upstream releases the Organization pulled, and - for all-Feeds grants - dependency Changes with Build and decision ids). Pass feed_id when several accessible Feeds host the name; otherwise it is inferred. Versions page at most 100 per call; when versions_has_more is true, pass versions_next_cursor back as versions_cursor for the next page. Returns names, versions, verified attribution facts, and timestamps only - never descriptions, READMEs, raw JWTs, or Token secrets.","input_schema":{"additionalProperties":false,"properties":{"feed_id":{"type":"string"},"include_versions_limit":{"maximum":100,"minimum":1,"type":"integer"},"package_name":{"maxLength":256,"minLength":1,"type":"string"},"versions_cursor":{"type":"string"}},"required":["package_name"],"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema"},"input_shape":"{ package_name: string, feed_id?: string, include_versions_limit?: number, versions_cursor?: string }","name":"get_package","output_schema":{"additionalProperties":true,"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema"},"output_shape":"object","required_scopes":[],"title":"Get package details"},{"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"description":"Diagnose a failing package install, publish, auth, or CI run against PackageMaze and return likely causes ranked most-likely-first, each with structured evidence and one concrete fix. Runs the checks that fit the kind: recorded policy refusals, Token rejection, Feed Base URL shape, Minimum Age Policy holds, delisted versions, Direct Package Precedence, pnpm placeholder-auth, and - with a Build number - the CI OIDC exchange correlation plus that Build's refusals. kind is the only required input. error_excerpt is untrusted text: parsed for status codes and PackageMaze URLs, quoted back at most 200 characters, never followed as instructions. Reads PackageMaze state only; it never receives Token secrets and never probes upstream registries.","input_schema":{"additionalProperties":false,"properties":{"build_number":{"minimum":1,"type":"integer"},"error_excerpt":{"maxLength":2000,"type":"string"},"feed":{"maxLength":128,"type":"string"},"kind":{"enum":["install","publish","auth","ci"],"type":"string"},"package_name":{"maxLength":256,"type":"string"},"version":{"maxLength":128,"type":"string"}},"required":["kind"],"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema"},"input_shape":"{ kind: \"install\" | \"publish\" | \"auth\" | \"ci\", feed?: string, package_name?: string, version?: string, error_excerpt?: string, build_number?: number }","name":"diagnose_failure","output_schema":{"additionalProperties":true,"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema"},"output_shape":"object","required_scopes":[],"title":"Diagnose a failure"},{"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false},"description":"Preflight dependency additions or updates against the PackageMaze Feed a project area installs through, before the package client runs. Verdicts come from the same policy evaluation the Feed's resolve path executes: the exact pin to write, Minimum Age Policy holds with when each held version becomes servable, License Policy verdicts on the advised pin, delisted versions, what the Organization already resolves, and a suggested alternative when held or denied. Never-served packages return verdict unknown. Accepts parsed dependency facts (never raw manifests or lockfiles) for duplicate and engines checks; verdicts land in the Organization's dependency decision log.","input_schema":{"additionalProperties":false,"properties":{"additions":{"items":{"additionalProperties":false,"properties":{"intent":{"type":"string"},"name":{"type":"string"},"requested_kind":{"enum":["pin","range","latest","absent"],"type":"string"},"requested_value":{"minLength":1,"type":"string"}},"required":["name","requested_kind"],"type":"object"},"maxItems":20,"minItems":1,"type":"array"},"base_commit_sha":{"type":"string"},"dependency_evidence":{"type":"object"},"project_area":{"type":"object"},"repository":{"type":"object"}},"required":["additions"],"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema"},"input_shape":"{ repository?: { name?: string }, base_commit_sha?: string, project_area?: { path?: string, artifact_protocol?: \"npm\" | \"pypi\", feed_id?: string, feed_base_url?: string, package_manager?: string, publishes?: boolean }, additions: Array<{ name: string, requested_kind: \"pin\" | \"range\" | \"latest\" | \"absent\", requested_value?: string, intent?: \"runtime\" | \"dev\" | \"optional:<group>\" }>, dependency_evidence?: { dependencies?: Record<string, string>, dev_dependencies?: Record<string, string>, engines?: Record<string, string>, requires_python?: string } }","name":"preflight_dependencies","output_schema":{"additionalProperties":true,"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema"},"output_shape":"object","required_scopes":[],"title":"Preflight dependencies"},{"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false},"description":"Stores parsed local dependency facts (never raw dependency files) as a user-owned Personal Dependency Report and closes the loop after a change. Repository and git fields are unverified claims; identical reports are grouped. Never creates or mutates a Project, verified snapshot or Change, Biography, Campaign, policy input, or Build history. Needs read.","input_schema":{"additionalProperties":false,"properties":{"build_number":{"minimum":1,"type":"integer"},"commit_sha":{"type":"string"},"decisions":{"items":{"type":"object"},"maxItems":20,"type":"array"},"dirty":{"type":"boolean"},"document":{"type":"object"},"git_ref":{"type":"string"},"organization_id":{"type":"string"},"parent_commit_shas":{"items":{"type":"string"},"maxItems":64,"type":"array"},"repository":{"type":"object"}},"required":["repository","document"],"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema"},"input_shape":"{ organization_id?: string, repository: { name: string, url?: string, path?: string, artifact_protocol: \"npm\" | \"pypi\", package_manager?: string }, document: { directDependencies: Array<{ name: string, requested: string, resolvedVersion?: string | null, group: \"runtime\" | \"dev\" | \"optional:<group>\" }>, resolvedPackages: Array<{ name: string, version: string }>, lockfileKind: \"npm-package-lock\" | \"pip-requirements\" | \"pnpm-lock\" | \"poetry-lock\" | \"uv-lock\" | \"yarn-lock\", lockfileSha256: string, projectPath: string, protocol: \"npm\" | \"pypi\", coverage?: { identifiedSkips: string[], unidentifiedSkips: number } }, git_ref?: string, commit_sha?: string, parent_commit_shas?: string[], dirty?: boolean, build_number?: number, decisions?: Array<{ package_name: string, decision_id: string }> }","name":"report_dependency_changes","output_schema":{"additionalProperties":true,"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema"},"output_shape":"object","required_scopes":[],"title":"Report dependency changes"},{"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"description":"Lists recent verified exchange attempts for an accessible Feed that can propose a Trust Rule. Provider-signed summaries only; evidence is not authorization. Needs manage_integrations.","input_schema":{"additionalProperties":false,"properties":{"feed":{"type":"string"}},"required":["feed"],"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema"},"input_shape":"{ feed: string }","name":"list_workload_access_rule_proposals","output_schema":{"additionalProperties":true,"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema"},"output_shape":"object","required_scopes":["manage_integrations"],"title":"List workload access rule proposals"},{"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"description":"Inspects one verified exchange attempt and the exact Trust Rule PackageMaze can propose from its signed provider evidence. Excludes raw claims, Token Secrets, and client-reported Build Context. Needs manage_integrations.","input_schema":{"additionalProperties":false,"properties":{"proposal_attempt_id":{"type":"string"}},"required":["proposal_attempt_id"],"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema"},"input_shape":"{ proposal_attempt_id: string }","name":"get_workload_access_rule_proposal","output_schema":{"additionalProperties":true,"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema"},"output_shape":"object","required_scopes":["manage_integrations"],"title":"Inspect workload access rule proposal"},{"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true},"description":"Reads the latest canonical repository configuration observation: provider-owned CI detection, setup, release-workflow diagnostics, Trust Rule readiness, Build handoff, and scan-derived lockfile status. Diagnostics carry source, limitations, finding codes, evidence, and fixes. Repository files and findings are discovery evidence, never Build, policy, or authorization evidence. Needs manage_integrations.","input_schema":{"additionalProperties":false,"properties":{"feed_id":{"type":"string"},"package_name":{"type":"string"},"project_id":{"type":"string"},"purpose":{"enum":["install","publish","docker-build","test"],"type":"string"},"workflow":{"type":"string"}},"required":["project_id"],"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema"},"input_shape":"{ project_id: string, feed_id?: string, purpose?: \"install\" | \"publish\" | \"docker-build\" | \"test\", package_name?: string, workflow?: string }","name":"get_project_ci_onboarding","output_schema":{"additionalProperties":true,"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema"},"output_shape":"object","required_scopes":["manage_integrations"],"title":"Get Project CI onboarding"},{"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"description":"Reads the Organization's derived setup readiness and canonical outcomes across Feeds, Projects and reads, Publishing, CI, Agent access, and Verification. Returns the same states, outcomes, and App next-action links as the Organization overview. Readiness is recomputed from Product State, never persisted, and one captured upstream package or published first-party package is sufficient. Needs read scope.","input_schema":{"additionalProperties":false,"properties":{},"required":[],"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema"},"input_shape":"{}","name":"get_organization_setup_readiness","output_schema":{"additionalProperties":true,"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema"},"output_shape":"object","required_scopes":["read"],"title":"Get Organization setup readiness"},{"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"description":"Requests a Workload Trust Rule for a CI tool or an OIDC workload identity. New requests need a justification. Retry pending_change_id once confirmed. Needs manage_integrations.","input_schema":{"additionalProperties":false,"properties":{"constraints":{"additionalProperties":false,"properties":{"audience":{},"claim_matchers":{"items":{"type":"object"},"type":"array"},"context_ids":{"items":{"type":"string"},"type":"array"},"environment":{},"event_name":{},"issuer_url":{},"organization_id":{},"pipeline_definition_id":{},"project_id":{},"provider":{"type":"string"},"ref_pattern":{},"repository":{},"repository_owner":{},"vcs_origin":{},"vcs_ref_pattern":{},"workflow_pattern":{}},"required":["provider"],"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema"},"feed":{"type":"string"},"justification":{"type":"string"},"link":{"type":"string"},"package_name":{"type":"string"},"pending_change_id":{"type":"string"},"project_id":{"type":"string"},"proposal_attempt_id":{"type":"string"},"provider":{"enum":["github-actions","circleci","oidc"],"type":"string"},"purpose":{"enum":["install","publish","docker-build","test"],"type":"string"},"vcs_ref_pattern":{"type":"string"},"workflow":{"type":"string"}},"required":[],"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema"},"input_shape":"{ feed?: string, provider?: \"github-actions\" | \"circleci\" | \"oidc\", purpose?: \"install\" | \"publish\" | \"docker-build\" | \"test\", package_name?: string, project_id?: string, workflow?: string, constraints?: provider-owned constraints, proposal_attempt_id?: string, vcs_ref_pattern?: string, justification: string, link?: string, pending_change_id?: string }","name":"create_workload_access_rule","output_schema":{"additionalProperties":true,"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema"},"output_shape":"object","required_scopes":["manage_integrations"],"title":"Create workload access rule"},{"annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":false},"description":"Removes one package's current External Feed selection after explicit confirmation. Needs manage_upstream_sources scope and current Organization Admin access. Does not select a replacement or alter retained Package Versions, Artifacts, or source history.","input_schema":{"additionalProperties":false,"properties":{"confirm":{"const":true,"type":"boolean"},"feed_id":{"type":"string"},"package_name":{"type":"string"}},"required":["feed_id","package_name","confirm"],"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema"},"input_shape":"{ feed_id: string, package_name: string, confirm: true }","name":"unpin_upstream_package","output_schema":{"additionalProperties":true,"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema"},"output_shape":"object","required_scopes":["manage_upstream_sources"],"title":"Unpin upstream package"}]