From 05c8e0a31a0d4192c590e833b24393208e1c751f Mon Sep 17 00:00:00 2001 From: tanaka takashi Date: Tue, 30 Jun 2026 19:03:25 +0900 Subject: fix: MCPCをvendored fork化しMCP準拠と接続安定性を改善 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Git submoduleを廃止してMCPCを直接管理 - Windowsで254リクエスト付近に発生する切断を修正 - JSON-RPC 2.0エラー応答を標準化 - tool schemaとruntimeの必須・任意引数を一致 - 1000回連続呼び出しの回帰テストを追加 --- third_party/mcpc/misc/api.org | 1193 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 1193 insertions(+) create mode 100644 third_party/mcpc/misc/api.org (limited to 'third_party/mcpc/misc/api.org') diff --git a/third_party/mcpc/misc/api.org b/third_party/mcpc/misc/api.org new file mode 100644 index 0000000..c3b33e5 --- /dev/null +++ b/third_party/mcpc/misc/api.org @@ -0,0 +1,1193 @@ +#+TITLE: API reference for mcpc +#+OPTIONS: num:nil toc:2 +#+HTML_HEAD: + + +* Server +:PROPERTIES: +:CUSTOM_ID: server +:END: + +** =mcpc_server_t= +:PROPERTIES: +:CUSTOM_ID: =mcpc_server_t= +:END: + +Server instance + + +** =mcpc_server_new_iostrm= +:PROPERTIES: +:CUSTOM_ID: =mcpc_server_new_iostrm= +:END: + +Create a I/O streams-base server. + +#+begin_src +mcpc_server_t * +mcpc_server_new_iostrm (const FILE *const strm_in, const FILE *const strm_out); +#+end_src + +=strm_in=: input stream + +=strm_out=: output stream + + +** =mcpc_server_new_tcp= +:PROPERTIES: +:CUSTOM_ID: =mcpc_server_new_tcp= +:END: + +Create a TCP-based server. + +#+begin_src +mcpc_server_t* +mcpc_server_new_tcp (); +#+end_src + + +** =mcpc_server_set_nament= +:PROPERTIES: +:CUSTOM_ID: =mcpc_server_set_nament= +:END: + +Set server's name. + +#+begin_src +mcpc_errcode_t +mcpc_server_set_nament (mcpc_server_t *sv, const char8_t *nament); +#+end_src + +=sv=: server + +=nament=: null-terminated name. Must be a UTF-8 string + + +** =mcpc_server_capa_enable_prmt= +:PROPERTIES: +:CUSTOM_ID: =mcpc_server_capa_enable_prmt= +:END: + +Enable server's general capability of /Prompt/. + +#+begin_src +mcpc_errcode_t +mcpc_server_capa_enable_prmt (mcpc_server_t *sv); +#+end_src + +=sv=: server + + +** =mcpc_server_capa_enable_prmt_listchg= +:PROPERTIES: +:CUSTOM_ID: =mcpc_server_capa_enable_prmt_listchg= +:END: + +Enable server's capability of notification for Prompt list updates. + +#+begin_src +mcpc_errcode_t +mcpc_server_capa_enable_prmt_listchg (mcpc_server_t *sv); +#+end_src + +=sv=: server + + +** =mcpc_server_capa_enable_tool= +:PROPERTIES: +:CUSTOM_ID: =mcpc_server_capa_enable_tool= +:END: + +Enable server's general capability of /Prompt/. + +#+begin_src +mcpc_errcode_t +mcpc_server_capa_enable_tool (mcpc_server_t *sv); +#+end_src + +=sv=: server + + +** =mcpc_server_capa_enable_tool_listchg= +:PROPERTIES: +:CUSTOM_ID: =mcpc_server_capa_enable_tool_listchg= +:END: + +Enable server's capability of notification for Prompt list updates. + +#+begin_src +mcpc_errcode_t +mcpc_server_capa_enable_tool_listchg (mcpc_server_t *sv); +#+end_src + +=sv=: server + + +** =mcpc_server_capa_enable_rsc= +:PROPERTIES: +:CUSTOM_ID: =mcpc_server_capa_enable_rsc= +:END: + +Enable server's general capability of /Resource/. + +#+begin_src +mcpc_errcode_t +mcpc_server_capa_enable_rsc (mcpc_server_t *sv); +#+end_src + +=sv=: server + + +** =mcpc_server_capa_enable_rsc_subscr= +:PROPERTIES: +:CUSTOM_ID: =mcpc_server_capa_enable_rsc_subscr= +:END: + +Enable server's capability of notification for Resource subscription. + +#+begin_src +mcpc_errcode_t +mcpc_server_capa_enable_rsc_subscr (mcpc_server_t *sv); +#+end_src + +=sv=: server + + +** =mcpc_server_capa_enable_rsc_listchg= +:PROPERTIES: +:CUSTOM_ID: =mcpc_server_capa_enable_rsc_listchg= +:END: + +Enable server's capability of notification for Prompt list updates. + +#+begin_src +mcpc_errcode_t +mcpc_server_capa_enable_rsc_listchg (mcpc_server_t *sv); +#+end_src + +=sv=: server + + +** =mcpc_server_capa_enable_complt= +:PROPERTIES: +:CUSTOM_ID: =mcpc_server_capa_enable_complt= +:END: + +Enable server's general capability of /Completion/. + +#+begin_src +mcpc_errcode_t +mcpc_server_capa_enable_complt (mcpc_server_t *sv); +#+end_src + +=sv=: server + + +** =mcpc_server_add_tool= +:PROPERTIES: +:CUSTOM_ID: =mcpc_server_add_tool= +:END: + +Add a /Tool/ to a server. + +#+begin_src +mcpc_errcode_t +mcpc_server_add_tool (mcpc_server_t *sv, mcpc_tool_t *tool); +#+end_src + +=sv=: server + +=tool=: tool, it will be automatically freed + + +** =mcpc_server_add_prmpt= +:PROPERTIES: +:CUSTOM_ID: =mcpc_server_add_prmpt= +:END: + +Add a /Prompt/ to a server. + +#+begin_src +mcpc_errcode_t +mcpc_server_add_prmpt (mcpc_server_t *sv, mcpc_prmpt_t *prmpt); +#+end_src + +=sv=: server + +=prmpt=: prompt, it will be automatically freed + + +** =mcpc_server_add_rsc= +:PROPERTIES: +:CUSTOM_ID: =mcpc_server_add_rsc= +:END: + +Add a /Resource/ to a server. + +#+begin_src +mcpc_errcode_t +mcpc_server_add_rsc (mcpc_server_t *sv, mcpc_rsc_t *rsc); +#+end_src + +=sv=: server + +=prmpt=: prompt, it will be automatically freed + + +** =mcpc_server_start= +:PROPERTIES: +:CUSTOM_ID: =mcpc_server_start= +:END: + +Start a server. + +#+begin_src +mcpc_errcode_t +mcpc_server_start (mcpc_server_t *sv); +#+end_src + +=sv=: server + + +** =mcpc_server_close= +:PROPERTIES: +:CUSTOM_ID: =mcpc_server_close= +:END: + +Close a server. + +#+begin_src +mcpc_errcode_t +mcpc_server_close (mcpc_server_t *sv); +#+end_src + +=sv=: server + + +* Tool + +** =mcpc_tool_t= +:PROPERTIES: +:CUSTOM_ID: =mcpc_tool_t= +:END: + +Tool + + +** =mcpc_toolprop_t= +:PROPERTIES: +:CUSTOM_ID: =mcpc_toolprop_t= +:END: + +Tool property + + +** =mcpc_tcallcb_t= +:PROPERTIES: +:CUSTOM_ID: =mcpc_tcallcb_t= +:END: + +The callback function of while doing tool calling. + + +** =mcpc_toolprop_new= +:PROPERTIES: +:CUSTOM_ID: =mcpc_toolprop_new= +:END: + +#+begin_src +mcpc_toolprop_t * +mcpc_toolprop_new (const char8_t *name, const size_t name_len, const char8_t *desc, const size_t desc_len, mcpc_anytype_t typ); +#+end_src + +=name=: /tool/ property's name + +=name_len=: the length of /tool/ property's name + +=desc=: /tool/ property's description + +=desc_len=: the length of /tool/ property's description + + +** =mcpc_toolprop_new2= +:PROPERTIES: +:CUSTOM_ID: =mcpc_toolprop_new2= +:END: + +#+begin_src +mcpc_toolprop_t * +mcpc_toolprop_new2 (const char8_t *nament, const char8_t *descnt, mcpc_anytype_t typ); +#+end_src + +=nament=: /tool/ property's name, must be null-terminated + +=descnt=: /tool/ property's description, must be null-terminated + + +** =mcpc_tool_new= +:PROPERTIES: +:CUSTOM_ID: =mcpc_tool_new= +:END: + +#+begin_src +mcpc_tool_t * +mcpc_tool_new (const char8_t *name, const size_t name_len, const char8_t *desc, const size_t desc_len); +#+end_src + +=name=: /tool/'s name + +=name_len=: the length of /tool/'s name + +=desc=: /tool/'s description + +=desc_len=: the length of /tool/'s description + + +** =mcpc_tool_new2= +:PROPERTIES: +:CUSTOM_ID: =mcpc_tool_new2= +:END: + +#+begin_src +mcpc_tool_t * +mcpc_tool_new2 (const char8_t *nament, const char8_t *descnt); +#+end_src + +=nament=: /tool/'s name, must be null-terminated + +=descnt=: /tool/'s description, must be null-terminated + + + +** =mcpc_tool_addfre_toolprop= +:PROPERTIES: +:CUSTOM_ID: =mcpc_tool_addfre_toolprop= +:END: + +#+begin_src +void +mcpc_tool_addfre_toolprop (mcpc_tool_t *tool, mcpc_toolprop_t *toolprop); +#+end_src + +=tool=: /tool/ + +=toolprop=: /tool/ property + + +** =mcpc_tool_addcpy_toolprop= +:PROPERTIES: +:CUSTOM_ID: =mcpc_tool_addcpy_toolprop= +:END: + +#+begin_src +void +mcpc_tool_addcpy_toolprop (mcpc_tool_t *tool, mcpc_toolprop_t *toolprop); +#+end_src + +=tool=: /tool/ + +=toolprop=: /tool/ property + + + +** =mcpc_tool_add_toolprop= +:PROPERTIES: +:CUSTOM_ID: =mcpc_tool_add_toolprop= +:END: + +Alias of =mcpc_tool_addfre_toolprop= + + +** =mcpc_tool_get_toolprop= (deprecate) +:PROPERTIES: +:CUSTOM_ID: =mcpc_tool_get_toolprop= +:END: + +#+begin_src +const mcpc_toolprop_t * +mcpc_tool_get_toolprop (const mcpc_tool_t *tool, size_t idx); +#+end_src + +=tool=: /tool/ + + +** =mcpc_tool_get_toolprop_len= +:PROPERTIES: +:CUSTOM_ID: =mcpc_tool_get_toolprop_len= +:END: + +#+begin_src +size_t +mcpc_tool_get_toolprop_len (const mcpc_tool_t *tool); +#+end_src + +=tool=: /tool/ + + +** =mcpc_tool_get_tpropval_i32= +:PROPERTIES: +:CUSTOM_ID: =mcpc_tool_get_tpropval_i32= +:END: + +#+begin_src +mcpc_errcode_t +mcpc_tool_get_tpropval_i32 (const mcpc_tool_t *tool, const char8_t *tprop_nament, int32_t *ret); +#+end_src + +=tool=: /tool/ + +=tprop_nament=: /tool/ property's name, null-terminated + +=ret=: the value of /tool/ property + + +** =mcpc_tool_get_tpropval_u8str= +:PROPERTIES: +:CUSTOM_ID: =mcpc_tool_get_tpropval_u8str= +:END: + +#+begin_src +mcpc_errcode_t +mcpc_tool_get_tpropval_u8str (const mcpc_tool_t *tool, const char8_t *tprop_nament, char8_t *ret, size_t ret_cap, size_t *ret_len); +#+end_src + +=tool=: /tool/ + +=tprop_nament=: /tool/ property's name, null-terminated + +=ret=: the value of /tool/ property + + +** =mcpc_tool_get_call_cb= +:PROPERTIES: +:CUSTOM_ID: =mcpc_tool_get_call_cb= +:END: + +#+begin_src +mcpc_errcode_t +mcpc_tool_get_call_cb (const mcpc_tool_t *tool, mcpc_tcallcb_t *ret); +#+end_src + +=tool=: /tool/ + +=ret=: the callback for /tools/call/ + + +** =mcpc_tool_set_call_cb= +:PROPERTIES: +:CUSTOM_ID: =mcpc_tool_set_call_cb= +:END: + +#+begin_src +mcpc_errcode_t +mcpc_tool_set_call_cb (mcpc_tool_t *tool, mcpc_tcallcb_t cb); +#+end_src + +=tool=: /tool/ + +=ret=: the callback for /tools/call/ + + +** =mcpc_toolcall_result_add_text_printf8= +:PROPERTIES: +:CUSTOM_ID: =mcpc_toolcall_result_add_text_printf8= +:END: + +Add a text content to the result of /tools/call/. + +Alias of =mcpc_ucbr_toolcall_add_text_printf8=. + + +** =mcpc_toolcall_result_add_errmsg_printf8= +:PROPERTIES: +:CUSTOM_ID: =mcpc_toolcall_result_add_errmsg_printf8= +:END: + +Add a error message to the result of /tools/call/. This will mark the +whole result as an error. + +Alias of =mcpc_toolcall_result_add_errmsg_printf8=. + + +* Resource + +** =mcpc_rsc_t= +:PROPERTIES: +:CUSTOM_ID: =mcpc_rsc_t= +:END: + +Resource + + +** =mcpc_rsc_new= +:PROPERTIES: +:CUSTOM_ID: =mcpc_rsc_new= +:END: + +#+begin_src +mcpc_rsc_t * +mcpc_rsc_new (const char8_t *uri, const size_t uri_len, const char8_t *name, const size_t name_len); +#+end_src + +=uri=: /Resource/'s URI + +=uri_len=: the length of /Resource/'s URI + +=name=: /Resource/'s name + +=name_len=: the length of /Resource/'s name + + +** =mcpc_rsc_new2= +:PROPERTIES: +:CUSTOM_ID: =mcpc_rsc_new2= +:END: + +#+begin_src +mcpc_rsc_t * +mcpc_rsc_new2 (const char8_t *uri_nt, const char8_t *nament); +#+end_src + +=uri_nt=: /Resource/'s URI, must be null-terminated + +=nament=: /Resource/'s name, must be null-terminated + + +** =mcpc_rsc_new3= +:PROPERTIES: +:CUSTOM_ID: =mcpc_rsc_new3= +:END: + +#+begin_src +mcpc_rsc_t * +mcpc_rsc_new3 (mcpc_mime_t mime, const char8_t *uri_nt, const char8_t *nament); +#+end_src + +=mime=: /Resource/'s MIME type + +=uri_nt=: /Resource/'s URI, must be null-terminated + +=nament=: /Resource/'s name, must be null-terminated + + +** =mcpc_rsc_free= +:PROPERTIES: +:CUSTOM_ID: =mcpc_rsc_free= +:END: + +#+begin_src +void +mcpc_rsc_free (mcpc_rsc_t *rsc); +#+end_src + +=rsc=: /Resource/ + + +** =mcpc_rsc_get_uri= +:PROPERTIES: +:CUSTOM_ID: =mcpc_rsc_get_uri= +:END: + +#+begin_src +mcpc_errcode_t +mcpc_rsc_get_uri (const mcpc_rsc_t *rsc, char8_t *ret, size_t ret_cap, size_t *ret_len); +#+end_src + +=rsc=: /Resource/ + + +** =mcpc_rsc_getref_uri= +:PROPERTIES: +:CUSTOM_ID: =mcpc_rsc_getref_uri= +:END: + +#+begin_src +mcpc_errcode_t +mcpc_rsc_getref_uri (const mcpc_rsc_t *rsc, const char8_t **ret, size_t *ret_len); +#+end_src + +=rsc=: /Resource/. + +=ret=: the pointer to /Resource/'s URI. + +=ret_len=: the length of /Resource/'s URI. + + +** =mcpc_rsc_getref_name= +:PROPERTIES: +:CUSTOM_ID: =mcpc_rsc_getref_name= +:END: + +#+begin_src +mcpc_errcode_t +mcpc_rsc_getref_name (const mcpc_rsc_t *rsc, const char8_t **ret, size_t *ret_len); +#+end_src + +=rsc=: /Resource/. + +=ret=: the pointer to /Resource/'s name. + +=ret_len=: the length of /Resource/'s name. + + +** =mcpc_rsc_get_mime= +:PROPERTIES: +:CUSTOM_ID: =mcpc_rsc_get_mime= +:END: + +#+begin_src +mcpc_errcode_t +mcpc_rsc_get_mime (const mcpc_rsc_t *rsc, mcpc_mime_t *ret); +#+end_src + +=rsc=: /Resource/. + +=ret=: /Resource/'s MIME type. + + +* Prompt + +** =mcpc_prmpt_t= +:PROPERTIES: +:CUSTOM_ID: =mcpc_prmpt_t= +:END: + +Prompt + + +** =mcpc_prmptarg_t= +:PROPERTIES: +:CUSTOM_ID: =mcpc_prmptarg_t= +:END: + +prompt argument + + +** =mcpc_prmptarghint_t= +:PROPERTIES: +:CUSTOM_ID: =mcpc_prmptarghint_t= +:END: + +prompt argument hint + + +** =mcpc_prmpt_callcb_t= +:PROPERTIES: +:CUSTOM_ID: =mcpc_prmpt_callcb_t= +:END: + +callback for prompts/get + + +** =mcpc_prmptarg_new= +:PROPERTIES: +:CUSTOM_ID: =mcpc_prmptarg_new= +:END: + +#+begin_src +mcpc_prmptarg_t * +mcpc_prmptarg_new (const char8_t *name, const size_t name_len, const char8_t *desc, const size_t desc_len); +#+end_src + +=name=: /Prompt/ argument's name + +=name_len=: the length of /Prompt/ argument's name + +=desc=: /Prompt/ argument's description + +=desc_len=: the length of /Prompt/ argument's description + + +** =mcpc_prmptarg_new2= +:PROPERTIES: +:CUSTOM_ID: =mcpc_prmptarg_new2= +:END: + +#+begin_src +mcpc_prmptarg_t * +mcpc_prmptarg_new2 (const char8_t *nament, const char8_t *descnt); +#+end_src + +=nament=: /Prompt/ argument's name, must be null-terminated + +=descnt=: /Prompt/ argument's description, must be null-terminated + + +** =mcpc_prmptarg_new3= +:PROPERTIES: +:CUSTOM_ID: =mcpc_prmptarg_new3= +:END: + +#+begin_src +mcpc_prmptarg_t * +mcpc_prmptarg_new3 (const char8_t *nament); +#+end_src + +=nament=: /Prompt/ argument's name, must be null-terminated + + +** =mcpc_prmpt_new= +:PROPERTIES: +:CUSTOM_ID: =mcpc_prmpt_new= +:END: + +#+begin_src +mcpc_prmpt_t * +mcpc_prmpt_new (const char8_t *name, const size_t name_len, const char8_t *desc, const size_t desc_len); +#+end_src + +=name=: /Prompt/'s name + +=name_len=: the length of /Prompt/'s name + +=desc=: /Prompt/'s description + +=desc_len=: the length of /Prompt/'s description + + +** =mcpc_prmpt_new2= +:PROPERTIES: +:CUSTOM_ID: =mcpc_prmpt_new2= +:END: + +#+begin_src +mcpc_prmpt_t * +mcpc_prmpt_new2 (const char8_t *nament, const char8_t *descnt); +#+end_src + +=nament=: /Prompt/'s name, must be null-terminated + +=descnt=: /Prompt/'s description, must be null-terminated + + +** =mcpc_prmpt_new3= +:PROPERTIES: +:CUSTOM_ID: =mcpc_prmpt_new3= +:END: + +#+begin_src +mcpc_prmpt_t * +mcpc_prmpt_new3 (const char8_t *nament); +#+end_src + +=nament=: /Prompt/'s name, must be null-terminated + + +** =mcpc_prmpt_addfre_prmptarg= +:PROPERTIES: +:CUSTOM_ID: =mcpc_prmpt_addfre_prmptarg= +:END: + +#+begin_src +mcpc_errcode_t +mcpc_prmpt_addfre_prmptarg (mcpc_prmpt_t *prmpt, mcpc_prmptarg_t *prmptarg); +#+end_src + +=prmpt=: /Prompt/ + +=prmptarg=: /Prompt/ argument + + +** =mcpc_prmpt_addcpy_prmptarg= +:PROPERTIES: +:CUSTOM_ID: =mcpc_prmpt_addcpy_prmptarg= +:END: + +#+begin_src +void +mcpc_prmpt_addcpy_prmptarg (mcpc_prmpt_t *prmpt, mcpc_prmptarg_t *prmptarg); +#+end_src + +=prmpt=: /Prompt/ + +=prmptarg=: /Prompt/ argument + + +** =mcpc_prmpt_add_prmptarg= +:PROPERTIES: +:CUSTOM_ID: =mcpc_prmpt_add_prmptarg= +:END: + +Alias of =mcpc_prmpt_addfre_prmptarg=. + +** =mcpc_prmpt_get_prmptarg= (deprecated) +:PROPERTIES: +:CUSTOM_ID: =mcpc_prmpt_get_prmptarg= +:END: + +#+begin_src +const mcpc_prmptarg_t * +mcpc_prmpt_get_prmptarg (const mcpc_prmpt_t *prmpt, size_t idx); +#+end_src + +=prmpt=: /Prompt/ + +=idx=: ... + + +** =mcpc_prmpt_get_prmptarg_len= +:PROPERTIES: +:CUSTOM_ID: =mcpc_prmpt_get_prmptarg_len= +:END: + +#+begin_src +size_t +mcpc_prmpt_get_prmptarg_len (const mcpc_prmpt_t *prmpt); +#+end_src + +=prmpt=: /Prompt/ + + +** =mcpc_prmpt_get_next_prmptarg= +:PROPERTIES: +:CUSTOM_ID: =mcpc_prmpt_get_next_prmptarg= +:END: + +#+begin_src +const mcpc_prmptarg_t * +mcpc_prmpt_get_next_prmptarg (const mcpc_prmpt_t *prmpt); +#+end_src + +=prmpt=: /Prompt/ + + +** =mcpc_prmpt_getbyname_prmptarg= +:PROPERTIES: +:CUSTOM_ID: =mcpc_prmpt_getbyname_prmptarg= +:END: + +#+begin_src +const mcpc_prmptarg_t * +mcpc_prmpt_getbyname_prmptarg (const mcpc_prmpt_t *prmpt, const char8_t *parg_name, size_t parg_name_len); +#+end_src + +=prmpt=: /Prompt/ + +=parg_name=: /Prompt/ argument's name + +=parg_name_len=: the length of /Prompt/ argument's name + + +** =mcpc_prmpt_getbynament_prmptarg= +:PROPERTIES: +:CUSTOM_ID: =mcpc_prmpt_getbynament_prmptarg= +:END: + +#+begin_src +const mcpc_prmptarg_t * +mcpc_prmpt_getbynament_prmptarg (const mcpc_prmpt_t *prmpt, const char8_t *parg_nament); +#+end_src + +=prmpt=: /Prompt/ + +=parg_nament=: /Prompt/ argument's name, must be null-terminated + + +** =mcpc_prmpt_get_callcb= +:PROPERTIES: +:CUSTOM_ID: =mcpc_prmpt_get_callcb= +:END: + +#+begin_src +mcpc_errcode_t +mcpc_prmpt_get_callcb (const mcpc_prmpt_t *prmpt, mcpc_prmpt_callcb_t *ret); +#+end_src + +=prmpt=: /Prompt/ + +=ret=: the callback for /prompts/get/ + + +** =mcpc_prmpt_set_callcb= +:PROPERTIES: +:CUSTOM_ID: =mcpc_prmpt_set_callcb= +:END: + +#+begin_src +mcpc_errcode_t +mcpc_prmpt_set_callcb (mcpc_prmpt_t *prmpt, mcpc_prmpt_callcb_t cb); +#+end_src + +=prmpt=: /prompt/ + +=ret=: the callback for /prompts/get/ + + +** =mcpc_prmptarg_get_u8str= +:PROPERTIES: +:CUSTOM_ID: =mcpc_prmptarg_get_u8str= +:END: + +#+begin_src +mcpc_errcode_t +mcpc_prmptarg_get_u8str (const mcpc_prmptarg_t *prmptarg, char8_t *ret, size_t ret_cap, size_t *ret_len); +#+end_src + +=prmptarg=: /prompt/ argument + +=ret=: caller-provided buffer + +=ret_cap=: the buffer's capacity + +=ret_len=: the buffer's length + + +** =mcpc_prmptarg_getref_u8str= +:PROPERTIES: +:CUSTOM_ID: =mcpc_prmptarg_getref_u8str= +:END: + +#+begin_src +mcpc_errcode_t +mcpc_prmptarg_getref_u8str (const mcpc_prmptarg_t *prmptarg, const char8_t **ret, size_t *ret_len); +#+end_src + +=prmptarg=: /prompt/ argument + +=ret=: the pointer to prompt's argument string data + +=ret_len=: the length of prompt's argument string data + + +** =mcpc_prmptarg_add_hint_printf8= +:PROPERTIES: +:CUSTOM_ID: =mcpc_prmptarg_add_hint_printf8= +:END: + +#+begin_src +mcpc_errcode_t +mcpc_prmptarg_add_hint_printf8 (mcpc_prmptarg_t *prmptarg, const char8_t *fmt, ...); +#+end_src + +=prmptarg=: /prompt/ argument + +=fmt=: the format string to print + + +** =mcpc_prmptget_result_add_user_printf8= +:PROPERTIES: +:CUSTOM_ID: =mcpc_prmptget_result_add_user_printf8= +:END: + +Add a complete _user_ prompt to the result of /prompts/get/. + +Alias of =mcpc_ucbr_prmptget_add_user_printf8=. + + +** =mcpc_prmptget_result_add_assist_printf8= +:PROPERTIES: +:CUSTOM_ID: =mcpc_prmptget_result_add_assist_printf8= +:END: + + +Add a complete _assistant_ prompt to the result of /prompts/get/. + +Alias of =mcpc_ucbr_prmptget_add_assist_printf8=. + + +* Others + +** =mcpc_errcode_t= +:PROPERTIES: +:CUSTOM_ID: =mcpc_ +:END: + +Library-specific error codes. + +*** Possible values + +=MCPC_EC_0=: success + +=MCPC_EC_BUG=: bug + +=MCPC_EC_BUFCAP=: insufficient buffer capacity + +=MCPC_EC_LONGTOOLNAME=: tool's name is too long + +=MCPC_EC_LONGTOOLDESC=: tool's description is too long + +=MCPC_EC_LONGTPROPNAME=: tool property's name is too long + +=MCPC_EC_LONGTPROPDESC=: tool property's description is too long + +=MCPC_EC_TOOLPROP_NOTFOUND=: tool property is not found + +=MCPC_EC_TOOLCALL_USERERR=: after tool calling, user indicates an error + +=MCPC_EC_CONNPOOL_NOTADD=: connection cannot be added + +=MCPC_EC_SVIMPL_SOCKET=: fail to create TCP socket + +=MCPC_EC_SVIMPL_BIND=: fail to bind TCP socket + +=MCPC_EC_SVIMPL_LISTEN=: fail to listen TCP socket + +=MCPC_EC_SVIMPL_TCP_INSUF_BUF=: insufficient buffer capacity + +=MCPC_EC_ANYDATA_NOTFOUND=: data cannot be found + +=MCPC_EC_ANYDATA_LONGNAME=: data's name is too long + +=MCPC_EC_PRMPTARG_NOTFOUND=: prompt agument cannot be found + +=MCPC_EC_JSON_FIELD_INVALID=: json field's value invalid, this means +the field is missing, or field has unexpected type + + +** =mcpc_anytype_t= +:PROPERTIES: +:CUSTOM_ID: =mcpc_anytype_t= +:END: + +The data type recognizable by the library. + +*** Possible values + +=MCPC_NONE=: nothing + +=MCPC_I8=: =int8_t=-like type + +=MCPC_U8=: =uint8_t=-like type + +=MCPC_I16=: =int16_t=-like type + +=MCPC_U16=: =uint16_t=-like type + +=MCPC_I32=: =int32_t=-like type + +=MCPC_U32=: =uint32_t=-like type + +=MCPC_I64=: =int64_t=-like type + +=MCPC_U64=: =uint64_t=-like type + +=MCPC_U8STR=: string of UTF-8 code units + +=MCPC_I8S=: an array of =int8_t= + +=MCPC_U8S=: an array of =uint8_t= + +=MCPC_I16S=: an array of =int16_t= + +=MCPC_U16S=: an array of =uint16_t= + +=MCPC_I32S=: an array of =int32_t= + +=MCPC_U32S=: an array of =uint32_t= + +=MCPC_I64S=: an array of =int64_t= + +=MCPC_U64S=: an array of =uint64_t= + +=MCPC_FUNC=: a function + + +** =mcpc_mime_t= +:PROPERTIES: +:CUSTOM_ID: =mcpc_mime_t= +:END: + +MIME types recognizable by the library, that conforms to [[https://www.rfc-editor.org/rfc/rfc2045][RFC2045]]. + +*** Possible value + +=MCPC_MIME_NONE=: nothing + +=MCPC_MIME_TEXT_PLAIN=: text/plain + +=MCPC_MIME_IMAGE_PNG=: image/png + +=MCPC_MIME_IMAGE_JPEG=: image/jpeg + +=MCPC_MIME_IMAGE_GIF=: image/gif + +=MCPC_MIME_AUDIO_MPEG=: audio/mpeg + +=MCPC_MIME_AUDIO_WAV=: audio/wav + +=MCPC_MIME_VIDEO_MPEG=: video/mpeg + +=MCPC_MIME_VIDEO_AVI=: video/avi + +=MCPC_MIME_APPLI_OCTS=: application/octet-stream + +=MCPC_MIME_APPLI_JSON=: application/json + +=MCPC_MIME_APPLI_PDF=: application/pdf + + +** =mcpc_ucbr_t= +:PROPERTIES: +:CUSTOM_ID: =mcpc_ucbr_t= +:END: + +User call back result. + + +** =mcpc_ucbr_toolcall_add_text_printf8= +:PROPERTIES: +:CUSTOM_ID: =mcpc_ucbr_toolcall_add_text_printf8= +:END: + +Add a text message to the result of /tools/call/. + +#+begin_src +void +mcpc_ucbr_toolcall_add_text_printf8 (mcpc_ucbr_t *ucbr, const char8_t *fmt, ...); +#+end_src + +=ucbr=: the callback result + +=fmt=: format string to be printed + + +** =mcpc_ucbr_toolcall_add_errmsg_printf8= +:PROPERTIES: +:CUSTOM_ID: =mcpc_ucbr_toolcall_add_errmsg_printf8= +:END: + +Add a error message to the result of /tools/call/. + +#+begin_src +void +mcpc_ucbr_toolcall_add_errmsg_printf8 (mcpc_ucbr_t *ucbr, const char8_t *fmt, ...); +#+end_src + +=ucbr=: the callback result + +=fmt=: format string to be printed + + +** =mcpc_ucbr_prmptget_add_user_printf8= +:PROPERTIES: +:CUSTOM_ID: =mcpc_ucbr_prmptget_add_user_printf8= +:END: + +Add a user prompt to the result of /prompts/get/. + +#+begin_src +void +mcpc_ucbr_prmptget_add_user_printf8 (mcpc_ucbr_t *ucbr, const char8_t *fmt, ...); +#+end_src + +=ucbr=: the callback result + +=fmt=: format string to be printed + + +** =mcpc_ucbr_prmptget_add_assist_printf8= +:PROPERTIES: +:CUSTOM_ID: =mcpc_ucbr_prmptget_add_assist_printf8= +:END: + +Add an assistant prompt to the result of /prompts/get/. + +#+begin_src +void +mcpc_ucbr_prmptget_add_assist_printf8 (mcpc_ucbr_t *ucbr, const char8_t *fmt, ...); +#+end_src + +=ucbr=: the callback result + +=fmt=: format string to be printed + -- cgit v1.2.3