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

Function application_request_dispatch

src/daemon/application.c:2564–2607  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2562}
2563
2564static cbm_daemon_runtime_application_status_t application_request_dispatch(
2565 cbm_daemon_application_t *application, cbm_daemon_application_session_t *session,
2566 const uint8_t *request, uint32_t request_length, uint8_t **response_out,
2567 uint32_t *response_length_out) {
2568 switch ((cbm_daemon_application_request_kind_t)request[0]) {
2569 case CBM_DAEMON_APPLICATION_REQUEST_SET_CONTEXT:
2570 return application_set_context(session, request, request_length);
2571 case CBM_DAEMON_APPLICATION_REQUEST_MCP:
2572 return application_mcp_request(session, request, request_length, response_out,
2573 response_length_out);
2574 case CBM_DAEMON_APPLICATION_REQUEST_TOOL:
2575 return application_tool_request(session, request, request_length, response_out,
2576 response_length_out);
2577 case CBM_DAEMON_APPLICATION_REQUEST_SET_UI_CONFIG:
2578 return application_set_ui_config(application, session, request, request_length);
2579 case CBM_DAEMON_APPLICATION_REQUEST_UI_READINESS_PROOF:
2580 return application_ui_readiness_proof(application, request, request_length, response_out,
2581 response_length_out);
2582 case CBM_DAEMON_APPLICATION_REQUEST_HOOK_AUGMENT: {
2583 if (!session->context_set || request_length <= 1) {
2584 return CBM_DAEMON_RUNTIME_APPLICATION_REJECTED;
2585 }
2586 char *input = application_text_copy(request + 1, request_length - 1);
2587 if (!input) {
2588 return CBM_DAEMON_RUNTIME_APPLICATION_REJECTED;
2589 }
2590 char *response = cbm_hook_augment_process_for(session->mcp, input, session->hook_event,
2591 session->hook_dialect);
2592 free(input);
2593 if (response) {
2594 size_t response_length = strlen(response);
2595 if (response_length > UINT32_MAX) {
2596 free(response);
2597 return CBM_DAEMON_RUNTIME_APPLICATION_HANDLER_ERROR;
2598 }
2599 *response_out = (uint8_t *)response;
2600 *response_length_out = (uint32_t)response_length;
2601 }
2602 return CBM_DAEMON_RUNTIME_APPLICATION_OK;
2603 }
2604 default:
2605 return CBM_DAEMON_RUNTIME_APPLICATION_REJECTED;
2606 }
2607}
2608
2609static cbm_daemon_runtime_application_status_t application_request(
2610 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