Task
Implement inter-canister & self calls by wrapping the ic0 system calls with asynchronous C++ calls.
Description
Currently, a C++ canister can provide services to users or other canisters, like LLM inference services, using the Candid interface.
However, a C++ canister is not able to consume services by calling other canisters. In addition, it is not possible right now to perform a self call, which is important for C++ canisters like LLMs to improve it ability to work around the instructions limit per message.
Task
Implement inter-canister & self calls by wrapping the ic0 system calls with asynchronous C++ calls.
Description
Currently, a C++ canister can provide services to users or other canisters, like LLM inference services, using the Candid interface.
However, a C++ canister is not able to consume services by calling other canisters. In addition, it is not possible right now to perform a self call, which is important for C++ canisters like LLMs to improve it ability to work around the instructions limit per message.