NeoGraph 0.16.0
A C++20 Graph Agent Engine Library — LangGraph for C++
Loading...
Searching...
No Matches
collaboration.h File Reference

Program-owned collaboration envelopes carried by A2A. More...

#include <neograph/api.h>
#include <neograph/a2a/types.h>
#include <cstdint>
#include <memory>
#include <mutex>
#include <optional>
#include <string>
#include <string_view>
#include <vector>
Include dependency graph for collaboration.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  neograph::a2a::CollaborationEnvelope
 The exact logical message sent over same-runtime mailboxes or A2A. More...
 
class  neograph::a2a::CollaborationLink
 Immutable invitation state. More...
 
struct  neograph::a2a::CollaborationLinkSpec
 Explicit invitation and capability boundary between two owners. More...
 
class  neograph::a2a::CollaborationMailbox
 Owner-scoped idempotent mailbox. More...
 
struct  neograph::a2a::CollaborationPeerIdentity
 Transport-authenticated owner/agent identity; never serialize credentials. More...
 

Enumerations

enum class  neograph::a2a::CollaborationTaskAuthorization : std::uint8_t
 Result of authorizing an already-known Program-backed collaboration task. More...
 

Functions

NEOGRAPH_API CollaborationEnvelope neograph::a2a::collaboration_from_message (const Message &message)
 Decode only messages carrying the NeoGraph collaboration metadata envelope.
 
NEOGRAPH_API Message neograph::a2a::collaboration_to_message (const CollaborationEnvelope &envelope)
 Convert a logical collaboration envelope into an ordinary A2A Message.
 

Variables

constexpr std::string_view neograph::a2a::COLLABORATION_EXTENSION_URI
 The A2A extension (spec 4.6) a server that accepts collaboration envelopes declares in its card's capabilities.extensions.
 

Detailed Description

Program-owned collaboration envelopes carried by A2A.

This is a transport adapter, not another execution engine. A collaboration link explicitly scopes two independently owned agents; envelopes are idempotent, sequence-bearing, and retain unknown terminal kinds verbatim. A mailbox is a durable-boundary journal that callers persist alongside their local ProgramTransitionStore before acknowledging remote delivery.

Definition in file collaboration.h.

Enumeration Type Documentation

◆ CollaborationTaskAuthorization

enum class neograph::a2a::CollaborationTaskAuthorization : std::uint8_t
strong

Result of authorizing an already-known Program-backed collaboration task.

NotLinked preserves the legacy A2A task path; Unauthorized deliberately does not disclose whether the task, link, or peer identity was wrong.

Definition at line 194 of file collaboration.h.

Variable Documentation

◆ COLLABORATION_EXTENSION_URI

constexpr std::string_view neograph::a2a::COLLABORATION_EXTENSION_URI
inlineconstexpr
Initial value:
=
"https://github.com/fox1245/NeoGraph/blob/master/docs/reference-en.md"
"#a2a-collaboration-extension"

The A2A extension (spec 4.6) a server that accepts collaboration envelopes declares in its card's capabilities.extensions.

Such a message carries a data part {"format": "neograph-a2a-collaboration-v1", "envelope": ...} and metadata.neograph_collaboration, and names its receiver task id up front, so delivering it again is idempotent. Only authenticated peers of a linked collaboration may send one.

Definition at line 162 of file collaboration.h.