MCPcopy Create free account
hub / github.com/Effect-TS/effect / stripResolvedApprovals

Function stripResolvedApprovals

packages/effect/src/unstable/ai/LanguageModel.ts:1935–1981  ·  view source on GitHub ↗
(
  prompt: Prompt.Prompt,
  approved: ReadonlyArray<ApprovalResult>,
  denied: ReadonlyArray<ApprovalResult>
)

Source from the content-addressed store, hash-verified

1933 * requests it never issued).
1934 */
1935const stripResolvedApprovals = (
1936 prompt: Prompt.Prompt,
1937 approved: ReadonlyArray<ApprovalResult>,
1938 denied: ReadonlyArray<ApprovalResult>
1939): Prompt.Prompt => {
1940 const resolvedApprovalIds = new Set<string>()
1941 for (const a of approved) resolvedApprovalIds.add(a.approvalId)
1942 for (const d of denied) resolvedApprovalIds.add(d.approvalId)
1943
1944 const cleanedMessages: Array<Prompt.Message> = []
1945
1946 for (const message of prompt.content) {
1947 if (message.role === "assistant") {
1948 const filteredContent = message.content.filter(
1949 (part) =>
1950 part.type !== "tool-approval-request" ||
1951 !resolvedApprovalIds.has(part.approvalId)
1952 )
1953 if (filteredContent.length > 0) {
1954 cleanedMessages.push(
1955 Prompt.makeMessage("assistant", {
1956 content: filteredContent,
1957 options: message.options
1958 })
1959 )
1960 }
1961 } else if (message.role === "tool") {
1962 const filteredContent = message.content.filter(
1963 (part) =>
1964 part.type !== "tool-approval-response" ||
1965 !resolvedApprovalIds.has(part.approvalId)
1966 )
1967 if (filteredContent.length > 0) {
1968 cleanedMessages.push(
1969 Prompt.makeMessage("tool", {
1970 content: filteredContent,
1971 options: message.options
1972 })
1973 )
1974 }
1975 } else {
1976 cleanedMessages.push(message)
1977 }
1978 }
1979
1980 return Prompt.fromMessages(cleanedMessages)
1981}
1982
1983const isApprovalNeeded = Effect.fnUntraced(function*<T extends Tool.Any>(
1984 tool: T,

Callers 1

LanguageModel.tsFile · 0.85

Calls 4

filterMethod · 0.80
pushMethod · 0.80
addMethod · 0.65
hasMethod · 0.45

Tested by

no test coverage detected