cosense-cliに認証解決ラッパーを挟む
前提
mrsekut.iconは個人用と会社用のCosenseアカウントが別々に存在している
自作のcosense-cliでは以下のような使い方ができた
code:prompt
以下の2つを読んでまとめてほしい
https://scrapbox.io/mrsekut-private/すごい内容
https://scrapbox.io/hoge-inc/ヤバい内容
これら2つのプロジェクトは別のアカウントでログインしてないと読めないが、そこを良い感じに解決していて便利だった
課題
最近、公式から@helpfeel/cosense-cliが出た
これに乗っかりたいが、上記の複数アカウント問題に対応されてなかった
環境変数で切り替えることは可能だが、
それをいちいちAIに指示するのは面倒だし、
AIもいちいち解釈して切り替えるのは大変だろう
解決
ということで、プロジェクト名で自動で解決する層を入れた
https://github.com/mrsekut/dotfiles/commit/580875d3013ac2e9f8d1c6e1186f0981b179f662
仕組みは非常にシンプルで、cosenseコマンドを実行した際に、
本物のcosenseを実行する前に、ラッパーがトークンを選んで本物に橋渡しさせるだけ
予め、projectとPATの対応をconfigとして用意しておくだけ
writeShellApplicationが良い感じに使えてハッピー
code:nix
{ pkgs, cosense-skills, ... }:
let
cosense-cli = pkgs.writeShellApplication {
name = "cosense";
runtimeInputs = pkgs.bun ;
text = ''
export COSENSE_OFFICIAL_CLI="${cosense-skills}/src/cli.ts"
exec bun run ${./router.ts} "$@"
'';
};
in
{
home.packages = cosense-cli ;
}
なので、公式Skillは何も知らずにcosenseを呼ぶが、内部では良い感じに認証が解決される