自分なりにclineのソースコードを読んでみる
https://github.com/cline/cline
リビジョン:397e8bda1fff64d7362e080063634cd195ec5655
まずはCopilot Chatで聞いてみた
https://gyazo.com/6eeda7575bcedf403a13895e80a4656d
VS Codeの Webview API でViewを表示しているので、そこから入力を受け取って ClineProvider.initClineWithTask を実行
タスクは Cline というクラスで遂行するらしい
起点は startTask で、タスクが指示されていたらそのままコンストラクタから呼び出すスタイル
流れは大方でChatが言ってる内容と大体同じだった
recursivelyMakeClineRequests がクッソ長いメソッドで、この中でAPIコール、コマンド実行していいかの確認、変更の承諾まわりのくだりを全部やって、1指示に対するループを終了していいかどうかの判定までを行う
特有のプロンプトはsrc/core/prompts/ にまとまってる
差分は CheckpointTracker を使って追跡するって言ってるけど、どうやって管理してるのか
→ simple-git ってやつを使ってる
https://gyazo.com/3270eaedca131fc592b5d4a6d57d16ec
余談だけどVS CodeのWebview API大体なんでもできるな すごい
https://code.visualstudio.com/api/extension-guides/webview