| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 |
- 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'}`,
- )
- }
- }
|