MCPcopy Create free account
hub / github.com/DeusData/codebase-memory-mcp / application_request_dispatch

Function application_request_dispatch

src/daemon/application.c:2671–2714  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2669}
2670
2671static cbm_daemon_runtime_application_status_t application_request_dispatch(
2672 cbm_daemon_application_t *application, cbm_daemon_application_session_t *session,
2673 const uint8_t *request, uint32_t request_length, uint8_t **response_out,
2674 uint32_t *response_length_out) {
2675 switch ((cbm_daemon_application_request_kind_t)request[0]) {
2676 case CBM_DAEMON_APPLICATION_REQUEST_SET_CONTEXT:
2677 return application_set_context(session, request, request_length);
2678 case CBM_DAEMON_APPLICATION_REQUEST_MCP:
2679 return application_mcp_request(session, request, request_length, response_out,
2680 response_length_out);
2681 case CBM_DAEMON_APPLICATION_REQUEST_TOOL:
2682 return application_tool_request(session, request, request_length, response_out,
2683 response_length_out);
2684 case CBM_DAEMON_APPLICATION_REQUEST_SET_UI_CONFIG:
2685 return application_set_ui_config(application, session, request, request_length);
2686 case CBM_DAEMON_APPLICATION_REQUEST_UI_READINESS_PROOF:
2687 return application_ui_readiness_proof(application, request, request_length, response_out,
2688 response_length_out);
2689 case CBM_DAEMON_APPLICATION_REQUEST_HOOK_AUGMENT: {
2690 if (!session->context_set || request_length <= 1) {
2691 return CBM_DAEMON_RUNTIME_APPLICATION_REJECTED;
2692 }
2693 char *input = application_text_copy(request + 1, request_length - 1);
2694 if (!input) {
2695 return CBM_DAEMON_RUNTIME_APPLICATION_REJECTED;
2696 }
2697 char *response = cbm_hook_augment_process_for(session->mcp, input, session->hook_event,
2698 session->hook_dialect);
2699 free(input);
2700 if (response) {
2701 size_t response_length = strlen(response);
2702 if (response_length > UINT32_MAX) {
2703 free(response);
2704 return CBM_DAEMON_RUNTIME_APPLICATION_HANDLER_ERROR;
2705 }
2706 *response_out = (uint8_t *)response;
2707 *response_length_out = (uint32_t)response_length;
2708 }
2709 return CBM_DAEMON_RUNTIME_APPLICATION_OK;
2710 }
2711 default:
2712 return CBM_DAEMON_RUNTIME_APPLICATION_REJECTED;
2713 }
2714}
2715
2716static cbm_daemon_runtime_application_status_t application_request(
2717 void *context, cbm_daemon_runtime_application_session_t *opaque_session,

Callers 1

application_requestFunction · 0.85

Calls 7

application_set_contextFunction · 0.85
application_mcp_requestFunction · 0.85
application_tool_requestFunction · 0.85
application_text_copyFunction · 0.85

Tested by

no test coverage detected