{
"schema": "whipplescript.package_manifest.v0",
"package_id": "std.messaging",
"name": "std.messaging",
"version": "0.1.0",
"libraries": [
{
"id": "std.messaging",
"version": "0.1.0",
"effect_contracts": [
{
"id": "messaging.send",
"effect_kind": "capability.call",
"source_forms": ["send"],
"input_schema": {
"channel": "string",
"text": "string"
},
"output_schema": {
"message_id": "string",
"channel": "string",
"provider": "string",
"status": "string",
"provider_message_id": "string",
"thread_id": "string",
"destination": "string",
"accepted_at": "string"
},
"required_capabilities": ["messaging.send"],
"provider_kinds": ["messaging"],
"projected_facts": ["effect.output"],
"validation": "runtime_boundary"
}
],
"constructs": [
{
"id": "messaging.send",
"construct_family": "effect_operation",
"keyword": "send",
"scope": "rule_body",
"grammar": {
"shape": "effect_operation",
"keyword": "send",
"slots": [
{ "name": "channel", "kind": "identifier", "connective": "via" }
],
"payload": {
"fields": [
{ "name": "text", "kind": "expression", "required": true },
{ "name": "markdown", "kind": "expression", "required": false },
{ "name": "thread_id", "kind": "expression", "required": false }
]
},
"binding": "required",
"target_capability": "messaging.send"
},
"requires": [
{
"kind": "Capability",
"name": "messaging.send"
}
],
"provides": [
{
"kind": "EffectHandle",
"type": "MessageSendReceipt"
}
],
"lowering_target": "capability_call",
"target_capability": "messaging.send"
}
]
}
],
"capabilities": [
{
"id": "messaging.send",
"description": "Send an outbound message via a declared channel.",
"schema": {
"input": {
"text": "string"
}
}
}
],
"providers": [
{
"id": "provider-messaging-fixture",
"provider_kind": "fixture",
"capability": "messaging.send",
"config": {}
},
{
"id": "provider-messaging-local",
"provider_kind": "std.messaging.local",
"capability": "messaging.send",
"config": {}
},
{
"id": "provider-messaging-desktop",
"provider_kind": "std.messaging.desktop",
"capability": "messaging.send",
"config": {}
},
{
"id": "provider-messaging-stdio",
"provider_kind": "std.messaging.stdio",
"capability": "messaging.send",
"config": {}
}
],
"profiles": [
{
"id": "profile-messaging-user",
"name": "messaging-user",
"description": "Allow outbound messaging sends over declared channels.",
"enforcement_mode": "enforce",
"allowed_capabilities": ["messaging.send"],
"config": {}
}
],
"bindings": [
{
"id": "binding-messaging-send-fixture",
"program_id": null,
"capability": "messaging.send",
"provider": "fixture",
"config": {
"report": {
"direction": "bidirectional",
"identity": "claimed_actor",
"interactions": ["buttons", "reactions"],
"content": ["text", "markdown"],
"delivery_receipts": ["accepted", "failed"]
}
}
},
{
"id": "binding-messaging-send-local",
"program_id": null,
"capability": "messaging.send",
"provider": "std.messaging.local",
"config": {
"report": {
"direction": "bidirectional",
"identity": "claimed_actor",
"interactions": ["buttons", "reactions"],
"content": ["text", "markdown"],
"delivery_receipts": ["accepted", "failed"]
}
}
},
{
"id": "binding-messaging-send-desktop",
"program_id": null,
"capability": "messaging.send",
"provider": "std.messaging.desktop",
"config": {
"report": {
"direction": "outbound_only",
"identity": "anonymous",
"interactions": [],
"content": ["text"],
"delivery_receipts": ["accepted", "failed"]
}
}
},
{
"id": "binding-messaging-send-stdio",
"program_id": null,
"capability": "messaging.send",
"provider": "std.messaging.stdio",
"config": {
"report": {
"direction": "bidirectional",
"identity": "claimed_actor",
"interactions": ["buttons"],
"content": ["text", "markdown"],
"delivery_receipts": ["accepted", "failed"]
}
}
}
]
}