Comando gerado pelo npm não chamando nó

Estou tentando criar um utilitário de linha de comando node.js e tendo um problema com o wrapper gerado pelo npm. Minha demo super simples é um arquivo package.json:

{
    "name": "demo-cli",
    "version": "0.0.1",
    "bin": { "demo": "bin/demo-cli.js" }
}

E o arquivo demo-cli.js:

console.log('DEMO WORKED');

O problema é quando eu instalo o módulo usandonpm install -g enquanto no diretório do projeto, o wrapper gerado não chama o nó com o arquivo como o parâmetro. Este é o conteúdo gerado de demo.cmd:

:: Created by npm, please don't edit manually.
"%~dp0\.\node_modules\demo-cli\bin\demo-cli.js"   %*

A versão unix tem o mesmo problema. Olhando para outra CLI instalada globalmente, posso ver que o nó está sendo testado e chamado como esperado.

:: Created by npm, please don't edit manually.
@IF EXIST "%~dp0\node.exe" (
  "%~dp0\node.exe"  "%~dp0\.\node_modules\mocha\bin\mocha" %*
) ELSE (
  node  "%~dp0\.\node_modules\mocha\bin\mocha" %*
)

Qual é o molho secreto necessário para o npm gerar o arquivo de script adequado? Eu tentei tudo o que pude encontrar ou pensar, incluindo a remoção da extensão .js, preferindo global, especificando a versão do nó ... sem sorte.

Estou usando o nó v0.6.18 e o npm v1.1.21 no Windows 7 x64.