Skip to content

Package Capability Invoke Result v1

Source schema: doc/schemas/package-capability-invoke-result.v1.schema.json

The answer to one invocation (P093 R13). refused happens before the admission point and records nothing; every other outcome is the journal's record, and started is a read of an in-flight invocation, never permission to dispatch it again. output/digest is present only for output the host validated.

Governing Basis

Project Lineage

Fields

Field Required Shape Description
diagnostic no ref: package-capability-diagnostic.v1.schema.json
schema yes const: package-capability-invoke-result.v1
schema/v yes const: 1
invocation/id yes ref: #/$defs/invocation-id
outcome yes enum: refused, started, completed, aborted, compensated, unknown
refusal/code no enum: package-capability/stale-request, package-capability/out-of-scope, package-capability/unknown-capability, package-capability/scope-commitment-mismatch, package-capability/contract-mismatch, package-capability/caller-evidence-invalid, package-capability/grant-missing, package-capability/grant-invalid, package-capability/grant-revoked-or-expired, package-capability/grant-holder-mismatch, package-capability/grant-binding-stale, package-capability/grant-voided-by-tombstone, package-capability/invocation-id-conflict, package-capability/invalid-input, package-capability/activation-stale, package-capability/provider-unavailable, package-capability/capacity-exhausted, package-capability/deadline-exceeded
retryable no boolean
request/digest no ref: #/$defs/digest
result/status no enum: retained, unavailable
output no unspecified
output/digest no ref: #/$defs/digest
cause no enum: no-outcome, output-contract-violation, pending-disposal

Definitions

Definition Shape Description
digest string
invocation-id string

Conditional Rules

Rule 1

When:

{
  "required": [
    "diagnostic"
  ]
}

Then:

{
  "properties": {
    "outcome": {
      "const": "refused"
    }
  },
  "required": [
    "outcome"
  ]
}

Rule 2

When:

{
  "properties": {
    "outcome": {
      "const": "refused"
    }
  },
  "required": [
    "outcome"
  ]
}

Then:

{
  "required": [
    "refusal/code",
    "retryable"
  ],
  "allOf": [
    {
      "not": {
        "anyOf": [
          {
            "required": [
              "result/status"
            ]
          },
          {
            "required": [
              "output"
            ]
          },
          {
            "required": [
              "output/digest"
            ]
          },
          {
            "required": [
              "cause"
            ]
          },
          {
            "required": [
              "request/digest"
            ]
          }
        ]
      }
    }
  ]
}

Rule 3

When:

{
  "properties": {
    "outcome": {
      "const": "completed"
    }
  },
  "required": [
    "outcome"
  ]
}

Then:

{
  "required": [
    "result/status"
  ],
  "allOf": [
    {
      "not": {
        "anyOf": [
          {
            "required": [
              "cause"
            ]
          }
        ]
      }
    }
  ]
}

Rule 4

When:

{
  "properties": {
    "result/status": {
      "const": "retained"
    }
  },
  "required": [
    "result/status"
  ]
}

Then:

{
  "required": [
    "output",
    "output/digest"
  ]
}

Rule 5

When:

{
  "properties": {
    "outcome": {
      "const": "unknown"
    }
  },
  "required": [
    "outcome"
  ]
}

Then:

{
  "required": [
    "cause"
  ]
}

Field Semantics

diagnostic

  • Required: no
  • Shape: ref: package-capability-diagnostic.v1.schema.json

schema

  • Required: yes
  • Shape: const: package-capability-invoke-result.v1

schema/v

  • Required: yes
  • Shape: const: 1

invocation/id

  • Required: yes
  • Shape: ref: #/$defs/invocation-id

outcome

  • Required: yes
  • Shape: enum: refused, started, completed, aborted, compensated, unknown

refusal/code

  • Required: no
  • Shape: enum: package-capability/stale-request, package-capability/out-of-scope, package-capability/unknown-capability, package-capability/scope-commitment-mismatch, package-capability/contract-mismatch, package-capability/caller-evidence-invalid, package-capability/grant-missing, package-capability/grant-invalid, package-capability/grant-revoked-or-expired, package-capability/grant-holder-mismatch, package-capability/grant-binding-stale, package-capability/grant-voided-by-tombstone, package-capability/invocation-id-conflict, package-capability/invalid-input, package-capability/activation-stale, package-capability/provider-unavailable, package-capability/capacity-exhausted, package-capability/deadline-exceeded

retryable

  • Required: no
  • Shape: boolean

request/digest

  • Required: no
  • Shape: ref: #/$defs/digest

result/status

  • Required: no
  • Shape: enum: retained, unavailable

output

  • Required: no
  • Shape: unspecified

output/digest

  • Required: no
  • Shape: ref: #/$defs/digest

cause

  • Required: no
  • Shape: enum: no-outcome, output-contract-violation, pending-disposal

Definition Semantics

$defs.digest

  • Shape: string

$defs.invocation-id

  • Shape: string