Files
orcs-code/src/tools/utils.ts
did:key:z6MkqDnb7Siv3Cwj7pGJq4T5EsUisECqR8KpnDLwcaZq5TPr d2542c9a62 asdf
Squash the current repository state back into one baseline commit while
preserving the README reframing and repository contents.

Constraint: User explicitly requested a single squashed commit with subject "asdf"
Confidence: high
Scope-risk: broad
Reversibility: clean
Directive: This commit intentionally rewrites published history; coordinate before future force-pushes
Tested: git status clean; local history rewritten to one commit; force-pushed main to origin and instructkr
Not-tested: Fresh clone verification after push
2026-03-31 03:34:03 -07:00

41 lines
1.1 KiB
TypeScript

import type {
AssistantMessage,
AttachmentMessage,
SystemMessage,
UserMessage,
} from 'src/types/message.js'
/**
* Tags user messages with a sourceToolUseID so they stay transient until the tool resolves.
* This prevents the "is running" message from being duplicated in the UI.
*/
export function tagMessagesWithToolUseID(
messages: (UserMessage | AttachmentMessage | SystemMessage)[],
toolUseID: string | undefined,
): (UserMessage | AttachmentMessage | SystemMessage)[] {
if (!toolUseID) {
return messages
}
return messages.map(m => {
if (m.type === 'user') {
return { ...m, sourceToolUseID: toolUseID }
}
return m
})
}
/**
* Extracts the tool use ID from a parent message for a given tool name.
*/
export function getToolUseIDFromParentMessage(
parentMessage: AssistantMessage,
toolName: string,
): string | undefined {
const toolUseBlock = parentMessage.message.content.find(
block => block.type === 'tool_use' && block.name === toolName,
)
return toolUseBlock && toolUseBlock.type === 'tool_use'
? toolUseBlock.id
: undefined
}