I have uploaded my code at https://github.com/Hfutsora/monaco-kaco.
Steps to reproduce:
I think the problem is that VS Code filters out your candidates because it gets the wrong already typed
characters. In my completion providers I use a different method:
const info = model.getWordUntilPosition(position);
which finds the word before the current caret position.