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

Function resolveMemorySelectorFlags

internal/cli/memory.go:1244–1298  ·  view source on GitHub ↗
(
	deps commandDeps,
	flags memorySelectorFlags,
	opts memorySelectorOptions,
)

Source from the content-addressed store, hash-verified

1242}
1243
1244func resolveMemorySelectorFlags(
1245 deps commandDeps,
1246 flags memorySelectorFlags,
1247 opts memorySelectorOptions,
1248) (MemorySelectorQuery, error) {
1249 scope, err := parseOptionalCLIMemoryScope(flags.Scope)
1250 if err != nil {
1251 return MemorySelectorQuery{}, err
1252 }
1253 agent := strings.TrimSpace(flags.Agent)
1254 tier, err := parseOptionalCLIAgentTier(flags.AgentTier)
1255 if err != nil {
1256 return MemorySelectorQuery{}, err
1257 }
1258 if scope == "" && (agent != "" || tier != "") {
1259 scope = memcontract.ScopeAgent
1260 }
1261 if scope == "" {
1262 scope = opts.DefaultScope
1263 }
1264 if scope != memcontract.ScopeAgent && (agent != "" || tier != "") {
1265 return MemorySelectorQuery{}, errors.New(
1266 "memory.scope.agent_flags_invalid: --agent and --agent-tier require --scope agent",
1267 )
1268 }
1269 if scope == memcontract.ScopeAgent {
1270 if agent == "" {
1271 return MemorySelectorQuery{}, errors.New(
1272 "memory.scope.agent_required: --agent is required when --scope agent",
1273 )
1274 }
1275 if tier == "" {
1276 return MemorySelectorQuery{}, errors.New(
1277 "memory.scope.agent_tier_required: --agent-tier is required when --scope agent",
1278 )
1279 }
1280 }
1281
1282 workspace := strings.TrimSpace(flags.Workspace)
1283 needsWorkspace := scope == memcontract.ScopeWorkspace || (scope == "" && opts.DefaultWorkspace) ||
1284 (scope == memcontract.ScopeAgent && tier == memcontract.AgentTierWorkspace)
1285 if workspace == "" && needsWorkspace {
1286 var err error
1287 workspace, err = currentWorkingDirectory(deps)
1288 if err != nil {
1289 return MemorySelectorQuery{}, err
1290 }
1291 }
1292 return MemorySelectorQuery{
1293 Scope: scope,
1294 WorkspaceID: workspace,
1295 AgentName: agent,
1296 AgentTier: tier,
1297 }, nil
1298}
1299
1300func parseOptionalCLIMemoryScope(raw string) (memcontract.Scope, error) {
1301 scope := memcontract.Scope(strings.TrimSpace(raw)).Normalize()

Callers 15

newMemoryListCommandFunction · 0.85
newMemoryShowCommandFunction · 0.85
newMemoryWriteCommandFunction · 0.85
newMemoryEditCommandFunction · 0.85
newMemoryDeleteCommandFunction · 0.85
newMemorySearchCommandFunction · 0.85
newMemoryReindexCommandFunction · 0.85
newMemoryHistoryCommandFunction · 0.85
newMemoryResetCommandFunction · 0.85
newMemoryReloadCommandFunction · 0.85

Calls 3

currentWorkingDirectoryFunction · 0.85

Tested by

no test coverage detected