chore: initialize recovered claude workspace
This commit is contained in:
88
src/utils/teamMemoryOps.ts
Normal file
88
src/utils/teamMemoryOps.ts
Normal file
@@ -0,0 +1,88 @@
|
||||
import { isTeamMemFile } from '../memdir/teamMemPaths.js'
|
||||
import { FILE_EDIT_TOOL_NAME } from '../tools/FileEditTool/constants.js'
|
||||
import { FILE_WRITE_TOOL_NAME } from '../tools/FileWriteTool/prompt.js'
|
||||
|
||||
export { isTeamMemFile }
|
||||
|
||||
/**
|
||||
* Check if a search tool use targets team memory files by examining its path.
|
||||
*/
|
||||
export function isTeamMemorySearch(toolInput: unknown): boolean {
|
||||
const input = toolInput as
|
||||
| { path?: string; pattern?: string; glob?: string }
|
||||
| undefined
|
||||
if (!input) {
|
||||
return false
|
||||
}
|
||||
if (input.path && isTeamMemFile(input.path)) {
|
||||
return true
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
/**
|
||||
* Check if a Write or Edit tool use targets a team memory file.
|
||||
*/
|
||||
export function isTeamMemoryWriteOrEdit(
|
||||
toolName: string,
|
||||
toolInput: unknown,
|
||||
): boolean {
|
||||
if (toolName !== FILE_WRITE_TOOL_NAME && toolName !== FILE_EDIT_TOOL_NAME) {
|
||||
return false
|
||||
}
|
||||
const input = toolInput as { file_path?: string; path?: string } | undefined
|
||||
const filePath = input?.file_path ?? input?.path
|
||||
return filePath !== undefined && isTeamMemFile(filePath)
|
||||
}
|
||||
|
||||
/**
|
||||
* Append team memory summary parts to the parts array.
|
||||
* Encapsulates all team memory verb/string logic for getSearchReadSummaryText.
|
||||
*/
|
||||
export function appendTeamMemorySummaryParts(
|
||||
memoryCounts: {
|
||||
teamMemoryReadCount?: number
|
||||
teamMemorySearchCount?: number
|
||||
teamMemoryWriteCount?: number
|
||||
},
|
||||
isActive: boolean,
|
||||
parts: string[],
|
||||
): void {
|
||||
const teamReadCount = memoryCounts.teamMemoryReadCount ?? 0
|
||||
const teamSearchCount = memoryCounts.teamMemorySearchCount ?? 0
|
||||
const teamWriteCount = memoryCounts.teamMemoryWriteCount ?? 0
|
||||
if (teamReadCount > 0) {
|
||||
const verb = isActive
|
||||
? parts.length === 0
|
||||
? 'Recalling'
|
||||
: 'recalling'
|
||||
: parts.length === 0
|
||||
? 'Recalled'
|
||||
: 'recalled'
|
||||
parts.push(
|
||||
`${verb} ${teamReadCount} team ${teamReadCount === 1 ? 'memory' : 'memories'}`,
|
||||
)
|
||||
}
|
||||
if (teamSearchCount > 0) {
|
||||
const verb = isActive
|
||||
? parts.length === 0
|
||||
? 'Searching'
|
||||
: 'searching'
|
||||
: parts.length === 0
|
||||
? 'Searched'
|
||||
: 'searched'
|
||||
parts.push(`${verb} team memories`)
|
||||
}
|
||||
if (teamWriteCount > 0) {
|
||||
const verb = isActive
|
||||
? parts.length === 0
|
||||
? 'Writing'
|
||||
: 'writing'
|
||||
: parts.length === 0
|
||||
? 'Wrote'
|
||||
: 'wrote'
|
||||
parts.push(
|
||||
`${verb} ${teamWriteCount} team ${teamWriteCount === 1 ? 'memory' : 'memories'}`,
|
||||
)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user