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