MCPcopy Create free account
hub / github.com/compozy/agh / parseMemoryPromotionSelector

Function parseMemoryPromotionSelector

internal/cli/memory.go:1432–1471  ·  view source on GitHub ↗
(
	deps commandDeps,
	flags memorySelectorFlags,
	raw string,
)

Source from the content-addressed store, hash-verified

1430}
1431
1432func parseMemoryPromotionSelector(
1433 deps commandDeps,
1434 flags memorySelectorFlags,
1435 raw string,
1436) (contract.MemoryScopeSelectorPayload, error) {
1437 parts := strings.Split(strings.TrimSpace(raw), ":")
1438 if len(parts) > 2 || strings.TrimSpace(parts[0]) == "" {
1439 return contract.MemoryScopeSelectorPayload{}, errors.New(
1440 "memory.promote.selector_invalid: selector must be scope[:tier]",
1441 )
1442 }
1443 scope, err := parseOptionalCLIMemoryScope(parts[0])
1444 if err != nil {
1445 return contract.MemoryScopeSelectorPayload{}, err
1446 }
1447 if scope == "" {
1448 return contract.MemoryScopeSelectorPayload{}, errors.New(
1449 "memory.promote.selector_invalid: selector scope is required",
1450 )
1451 }
1452 promoteFlags := flags
1453 promoteFlags.Scope = string(scope)
1454 if len(parts) == 2 {
1455 promoteFlags.AgentTier = strings.TrimSpace(parts[1])
1456 }
1457 if scope != memcontract.ScopeAgent {
1458 promoteFlags.Agent = ""
1459 promoteFlags.AgentTier = ""
1460 }
1461 selector, err := resolveMemorySelectorFlags(deps, promoteFlags, memorySelectorOptions{DefaultWorkspace: true})
1462 if err != nil {
1463 return contract.MemoryScopeSelectorPayload{}, err
1464 }
1465 return contract.MemoryScopeSelectorPayload{
1466 Scope: selector.Scope,
1467 WorkspaceID: selector.WorkspaceID,
1468 AgentName: selector.AgentName,
1469 AgentTier: selector.AgentTier,
1470 }, nil
1471}
1472
1473func boolStatus(value bool) string {
1474 if value {

Callers 1

newMemoryPromoteCommandFunction · 0.85

Calls 2

Tested by

no test coverage detected