콘텐츠로 이동

Pi 프로바이더

가장 큰 경쟁 JetBrains 플러그인 zhukunpenglinyutong/jetbrains-cc-gui(star 5,315)는 ai-bridge/channels/ 아래에 여섯 개의 CLI 채널 — claude, codex, grok, kimi, opencode, pi — 을 붙였지만 그 사이에 공통 계약이 없습니다.

Pi는 그 여섯 중 하나입니다.

같은 조사의 서로 다른 두 부분에서 나온 두 가지 사실이 있습니다.

  • 경쟁 플러그인이 구동하는 여섯 채널 중 하나이며, 그래서 여기서 계획되었습니다.
  • pi(star 87,262)는 조사가 살펴본 프로젝트 중 star가 가장 높기도 했으며, SDK로 소비 가능한 CLI 래퍼가 아니라 범용 툴킷이라는 이유로 비교 대상 집합에서 제외되었습니다.

이 두 사실은 서로 모순되지 않은 채 함께 있습니다. 범용 툴킷이라는 점은 pi를 비교 가능한 프로젝트로서 탈락시켰을 뿐, pi가 언젠가 이 라이브러리가 구동할 CLI라는 것에 반하는 근거는 아닙니다. 프로바이더는 지목할 CLI의 정체성이며, 그 CLI가 무엇을 위한 것인지는 그 CLI의 사정입니다.

그것을 구동하는 일에 관한 전부입니다. 아직 조사되지 않았습니다.

  • 커맨드 이름과 대화를 식별하는 방식.
  • 어느 플래그가 이것을 터미널 UI가 아니라 제어 가능한 양방향 스트림으로 만드는지.
  • 출력이 type 판별자를 가진 NDJSON인지. 그렇다면 EventParser가 그대로 동작합니다.
  • 권한 어휘, 그리고 닫힌 PermissionMode 집합이 그것을 표기할 수 있는지.
  • authmcp 서브커맨드가 있는지, 그리고 어떤 형태로인지.
  • 범용 툴킷이 애초에 어댑터가 필요로 하는 세션 형태의 표면을 드러내는지 — 가장 먼저 확인해야 할 것이지만, 확인되지 않았습니다.

주로 코딩 에이전트가 아닌 CLI는 이 계약이 일반화되는지에 대한 가장 혹독한 시험입니다. SpawnOptions는 특정 CLI가 아니라 이 라이브러리의 어휘로 말하고, Command는 의도로 말합니다 — 메시지, 모델, 권한 모드. 형태가 다른 CLI를 그 단어들로 변경 없이 구동할 수 있다면, 그것은 추상화가 실재한다는 강한 근거입니다.

구동할 수 없다면 그것이 더 값진 발견이며, 작업 순서가 그것을 드러냅니다.

  1. CLI의 실제 동작에 맞춰 어댑터를 정확히 이식한다.
  2. 기존 계약을 우회해야 했던 모든 지점을 기록한다.
  3. 존재하는 구현들에서 공통 형태를 추출한다.
  4. 그 뒤에야 AbstractAdapter를 넓힌다.