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

Function cbm_tiered_profile_path

src/cli/cli.c:7420–7452  ·  view source on GitHub ↗

Derive tier siblings only from the exact shipped Verify basename. This keeps * vendor-specific suffixes such as .agent.md, .toml, and .json intact. */

Source from the content-addressed store, hash-verified

7418/* Derive tier siblings only from the exact shipped Verify basename. This keeps
7419 * vendor-specific suffixes such as .agent.md, .toml, and .json intact. */
7420static int cbm_tiered_profile_path(const char *verify_path, cbm_graph_tier_t tier, char *output,
7421 size_t output_size) {
7422 static const char verify_basename[] = "codebase-memory";
7423 if (!verify_path || !verify_path[0] || !output || output_size == 0U) {
7424 return CLI_ERR;
7425 }
7426 const char *basename = strrchr(verify_path, '/');
7427 const char *backslash = strrchr(verify_path, '\\');
7428 if (backslash && (!basename || backslash > basename)) {
7429 basename = backslash;
7430 }
7431 basename = basename ? basename + 1U : verify_path;
7432 size_t verify_len = strlen(verify_basename);
7433 if (strncmp(basename, verify_basename, verify_len) != 0 || basename[verify_len] != '.') {
7434 return CLI_ERR;
7435 }
7436 const char *slug = cbm_graph_tier_slug(tier);
7437 if (!slug) {
7438 return CLI_ERR;
7439 }
7440 const char *suffix = basename + verify_len;
7441 size_t directory_len = (size_t)(basename - verify_path);
7442 size_t slug_len = strlen(slug);
7443 size_t suffix_len = strlen(suffix);
7444 if (directory_len >= output_size || slug_len > output_size - directory_len - 1U ||
7445 suffix_len > output_size - directory_len - slug_len - 1U) {
7446 return CLI_ERR;
7447 }
7448 memcpy(output, verify_path, directory_len);
7449 memcpy(output + directory_len, slug, slug_len);
7450 memcpy(output + directory_len + slug_len, suffix, suffix_len + 1U);
7451 return CLI_OK;
7452}
7453
7454static cbm_graph_access_t cbm_tiered_profile_access(cbm_graph_profile_dialect_t dialect) {
7455 return cbm_graph_dialect_direct_capable(dialect) ? CBM_GRAPH_ACCESS_DIRECT

Calls 1

cbm_graph_tier_slugFunction · 0.85

Tested by

no test coverage detected