| 671 | ); |
| 672 | |
| 673 | const makePolicyProvider = ( |
| 674 | extension: Pick< |
| 675 | ToolkitsExtension, |
| 676 | "policyRulesForSlug" | "resolvePolicyForSlug" | "preparePolicyResolverForSlug" |
| 677 | >, |
| 678 | slug: string, |
| 679 | ): ToolPolicyProvider => ({ |
| 680 | list: () => extension.policyRulesForSlug(slug), |
| 681 | resolve: ({ toolId, defaultRequiresApproval }) => |
| 682 | extension.resolvePolicyForSlug(slug, toolId, defaultRequiresApproval), |
| 683 | // Preferred path: core calls this once per operation, so the toolkit's |
| 684 | // policies + connections are fetched once instead of once per tool. |
| 685 | prepare: () => extension.preparePolicyResolverForSlug(slug), |
| 686 | }); |
| 687 | |
| 688 | export const toolkitsPlugin = definePlugin((options: ToolkitsPluginOptions = {}) => { |
| 689 | const activeToolkitSlug = options.activeToolkitSlug; |