기능 이음새 및 핵심 서비스
서비스는 핵심 기반 서비스, 교체 가능한 기능 이음새 또는 번들/구성 지점일 수 있습니다. 그래프는 서비스 선언을 소유하는 패키지, 알려진 구현 패키지, 그리고 서비스를 직접 사용하는 패키지를 보여 줍니다.
| ctx 키 | 역할 | 소유자 | 구현체 | 직접 소비자 | 컴패니언 플러그인 | 참고 |
|---|---|---|---|---|---|---|
ctx.attachments | seam | attachment | attachment-local | host-runtime, llm-pi-ai | - | 호스트는 세션 이벤트 전에 수락된 이미지를 커밋하고, 공급자 어댑터는 승인된 영속 참조를 공급자 고유 콘텐츠로 해석합니다. |
ctx.llm | seam | llm | llm-deepseek, llm-pi-ai, llm-replay | agent-loop, compaction-basic | - | 어댑터는 공급자 구현체를 등록하고, 루프와 압축은 공급자 중립 스트림 서비스를 호출합니다. |
ctx.tokenMeter | core | token-meter | - | compaction-basic | - | 격리된 세션별 재생 폴드를 소유하며, 압력 소비자는 불변의 리비전 측정값을 공유합니다. |
ctx.toolResultPruner | core | compaction-tool-result-pruner | - | compaction-basic | - | 요약 압축 전에 재생 가능한 단일 노드 표면 교체를 통해 현재의 과도하게 큰 도구 결과를 다시 작성합니다. |
ctx.sessions | core | session | - | agent-loop, agent, session-persistence, session-query, session-query-sqlite, subagent-inprocess, invariants, message-feedback | - | 추가 전용 Session 인스턴스를 소유하고 영속 세션 이벤트 피드를 내보냅니다. |
ctx.invariants | core | invariants | - | session, agent, scope, agent-loop | - | 컴패니언 하위 경로는 소유자 로컬 검사를 등록하고, 서비스는 선택, 고유성, 자식 파이버 및 패키지 귀속 실패를 소유합니다. |
ctx.typert | core | typert-registry | - | typert-loader, api-gateway | - | 플러그인은 라이브 zod 기여를 직접 또는 dsh-typert-loader를 통해 등록합니다. API 게이트웨이는 호출 설명자와 공급자를 소비하고, 다른 런타임 소비자는 각자의 경계에서 스키마와 리플렉션 메타데이터를 조회합니다. |
ctx.typertGateway | core | api-gateway | - | - | - | 생성된 Remote 설명자를 라이브 Cordis 서비스와 연결하고, 등록된 ID를 해석하며, 공유 Connection RPC 캐리어를 통해 단항 호출을 노출합니다. |
ctx.sessionPersistence | seam | session-persistence | session-persistence-jsonl, session-persistence-sqlite | agent-loop, tool-bash, hooks-claude-code, hooks-codex, session-query, session-query-sqlite, message-feedback | - | 백엔드는 동일한 SessionEvent 어휘를 영속화하며, 앱은 구성 시점에 백엔드를 선택합니다. |
ctx.settings | seam | settings | settings-file | llm-deepseek, llm-pi-ai, apiproxy | - | 플러그인은 네임스페이스 스키마를 등록하고 계층화된 값을 해석합니다. 공급자는 원시 문서를 저장합니다. LLM 어댑터는 사용자 섹션 아래에 구성 기준으로 진입 설정을 등록하며, 웹 게이트웨이는 삭제 처리된 계층 설명자를 제공하고 사용자 계층을 기록합니다. |
ctx.credentials | seam | credentials | credentials-local | llm-deepseek, llm-pi-ai, apiproxy | - | 구성은 시크릿에 대한 참조를 전달하고 공급자는 값을 소유합니다. 소비자는 작업별로 해석하므로 교체된 자격 증명이 바로 다음 요청에 반영됩니다. 웹 게이트웨이는 값이 없는 보기를 노출하고 쓰기 전용 저장소를 제공합니다. |
ctx.sessionTelemetry | seam | session-telemetry | session-telemetry-otel | - | - | 이 심은 세션 레코드를 캡처하고 삭제 처리하여 하나의 백엔드에 전달합니다. 다른 어떤 구성 요소도 서비스를 소비하지 않으며 출력은 프로세스를 벗어납니다. |
ctx.storage | seam | storage | storage-json, storage-sqlite | storage-domain | - | 백엔드는 이름 아래에서 나란히 등록되고, 데이터 형식(도메인 우선)은 허브에 마운트되어 형식화된 작업을 불투명한 KV 단위 기본 요소로 변환합니다. |
ctx.storageDomain | core | storage-domain | - | workspace, message-feedback | - | 구성된 모든 백엔드를 기다린 다음, 형식화된 영속 상태를 위한 하나의 수명 주기 바인딩 서비스로 도메인 형식을 게시합니다. |
ctx.messageFeedback | core | message-feedback | - | - | - | Session 기록이나 텔레메트리에 진입하지 않고, 어시스턴트 메시지별 로컬 피드백, 수명 주기 및 대상 검증, 항목별 비교 후 설정, Host 단항 Remote 계약을 소유합니다. |
ctx.workspaceRegistry | core | workspace | - | apiproxy | - | 도메인 기능을 통해 WorkspaceId 브랜드 레코드를 소유하며, 안정적인 sessionIds 계정이 Host RPC와 GUI 프로젝션을 구동합니다. |
ctx.sessionQuery | seam | session-query | session-query-sqlite | session-reference, tool-session-query | - | 인터페이스는 정확한 읽기, 필터 및 추적을 제공하고, 구체 백엔드는 전체 텍스트 조정, 순위 지정, 스니펫 및 커서 생성을 추가합니다. 모델 소비자는 워크스페이스 권한과 커서 없는 렌더링을 소유합니다. |
ctx.sessionReferenceResolver | core | session-reference | - | - | - | 제한된 현재 표면 대화 스냅샷을 영속적이고 신뢰할 수 없는 메시지 컨텍스트로 프로젝션합니다. 호스트 어댑터는 멘션 구문을 소유합니다. |
ctx.sessionTitle | seam | session-title | session-title-first-prompt-llm, session-title-all-prompts-llm | - | - | 결정론적 폴백, 최신 제목 폴드 및 유일한 선택적 비동기 공급자 등록을 소유합니다. |
ctx.systemPrompt | core | system-prompt | - | agent-loop, tools, tool-fs, tool-terminal, tool-web | - | 각 단계의 프롬프트 섹션과 모델용 도구 스키마를 수집합니다. |
ctx.tools | core | tools | - | agent-loop, tool-ask-user, tool-bash, tool-cordis, tool-fs, tool-terminal, tool-skill, tool-subagent, tool-todo, tool-web | - | 기능을 등록하고 Code Mode 전송을 소유하며, 사전 정책, 단조 가드, 주변 디스패치, 사후 정책 및 최종 결과 관찰을 통해 호출을 라우팅합니다. |
ctx.userQuestions | seam | user-questions | - | tool-ask-user | - | UI 프런트엔드는 활성 사용자 답변 공급자를 제공하며, tool-ask-user는 공급자 중립 ask() Promise에서 도구 호출을 일시 중지합니다. |
ctx.planMode | core | plan-mode | - | - | - | 기록된 계획/모드 상태를 폴드하고, 턴 경계에서 사용자 선택을 플러시하며, 배포 소유 지침을 렌더링하고, /plan을 등록하며, 전환 전반에서 계획 종료 스키마를 안정적으로 유지합니다. |
ctx.agentPresets | core | agent-presets | - | - | - | 신뢰된 루트와 사용자가 작성한 루트에서 프리셋 디렉터리를 검색하고, 생성 중에 하나의 프리셋 cordis.yml을 에이전트 범위 아래에 마운트합니다. 활성화되지 않는 행 또는 루트 서비스 영역에 게시하는 행은 거부합니다. |
ctx.commands | core | commands | - | - | - | 플러그인은 호출을 모델에 전송하지 않고 직접 사용자 명령을 등록합니다. |
ctx.sessionProjections | core | session-projection | - | tool-todo, session-title, host-apiproxy | - | 도메인은 상태 기반 폴드 단위를 등록합니다. 즉시 드라이브는 세션별 워터마크 상태를 유지하고 api-proxy는 기준선을 제공하며 변경된 값을 푸시합니다. |
ctx.sessionProjectionCache | core | session-projection-cache | - | host-apiproxy | - | 세션별로 프로젝션 단위 상태를 내구성 있게 체크포인트하고(스로틀링 + turn/end/detach 필수 지점), 콜드 읽기 사다리를 제공합니다. 즉 캐시 행 + 영속성 테일 재생을 사용하므로 목록이 전체 로그를 로드하지 않습니다. |
ctx.skills | seam | skill | skill-badge, skill-filesystem | tool-skill | - | 공급자 스킬 카탈로그를 병합하며, tool-skill은 세션 접두사 카탈로그를 렌더링하고 완전한 스킬 본문을 로드합니다. |
ctx.agents | core | agent | - | agent-loop, acp, subagent-inprocess | - | 라이브 Agent 핸들, create/resume 팩터리 심 및 프로세스 로컬 개시자 전파를 소유합니다. |
ctx.agentDefaultModel | core | agent-default-model | - | headless, host-apiproxy | - | 기본 ModelSelection을 설정을 통해 계층화하여 직접 및 Host 기반 Agent 진입점이 하나의 상태 소유자를 공유하도록 합니다. |
ctx.agentLoop | bundle | agent-loop | - | agent-spine-demo | - | 유일한 구체 루프 플러그인입니다. 확장 패키지는 이 패키지가 아니라 dsh-agent 이벤트와 서비스에 종속됩니다. |
ctx.goals | core | goal | - | - | - | 세션 로그에서 리비전된 목표 상태를 폴드하고 라이브 계속 활성화를 프로세스 로컬로 유지합니다. |
ctx.e2b | core | e2b | - | fs-e2b, subprocess-e2b | - | 하나의 공유 E2B SDK 핸들, 원격 작업 디렉터리 및 최종 샌드박스 처분을 소유하므로 두 기본 E2B 공급자가 동일한 Linux 런타임에 존재합니다. |
ctx.subprocess | seam | subprocess | subprocess-local, subprocess-e2b | bash-local, bash-sandbox, terminal-bash, lsp-stdio, subagent-acp, subagent-codex, subagent-claude-code | - | bash 실행기, PTY 셸 백엔드, LSP 호스트 및 프로세스 외부 ACP, Codex, Claude Code 하위 에이전트 백엔드는 ctx.subprocess를 통해 생성됩니다. 이 서비스는 프로세스 좌표, 트리/세션 수명, stdio 처분, 터미널 메커니즘 및 종료 에스컬레이션을 소유합니다. |
ctx.shell | seam | shell | bash-local, bash-sandbox, pwsh-local | tool-bash, tool-pwsh, hooks-claude-code, hooks-codex | - | 모델용 셸 도구와 훅 브리지가 이 심을 소비합니다. 샌드박스, 원격 또는 PowerShell 실행기는 이를 건드리지 않고 bash-local을 대체합니다. |
ctx.shellEnv | core | shell-env | - | tool-bash, tool-pwsh | - | 플러그인은 효과 범위 DSH_* 사실을 선언하고, 각 셸 도구는 실행마다 하나의 신뢰된 스냅샷을 수집하며 실행기가 네임스페이스를 재구성합니다. |
ctx.terminals | seam | terminal | terminal-bash | tool-terminal | - | 레지스트리는 정확한 Agent 세션 ID와 정리를 소유하고, 백엔드는 터미널 메커니즘을 소유하며, tool-terminal은 소유자 범위 모델 도구를 노출합니다. |
ctx.sandbox | seam | sandbox | sandbox-local | bash-sandbox, terminal-bash | - | 소비자는 생성하려는 정확한 argv를 전달하고, 동일 월드 백엔드는 이를 호출별 정책 아래에서 래핑하고 적용 결과를 보고합니다. |
ctx.sandboxPolicy | core | sandbox-policy | - | bash-sandbox, fs-sandbox, terminal-bash | - | 배포 기본 모드 + 워크스페이스 루트를 위한 단일 위치입니다. 샌드박스 실행기와 공급자만 서비스를 읽으며(도구 계층은 함께 내보내는 순수 sandbox/mode 폴드를 사용함), 두 적용 계열이 이를 읽으므로 bash와 fs가 서로 다른 루트로 제한되지 않습니다. |
ctx.approval | seam | approval | acp | tools, tool-bash | - | approval/request 폭포를 통해 디스패치되는 일회성 권한 결정입니다. 응답자는 리스너이며(자체 에이전트의 ACP 브리지), 부재 시 unavailable로 안전하게 실패합니다. |
ctx.permissionPresets | core | permission-presets | - | - | - | 샌드박스 모드와 승인 정책 노브를 묶는 사용자용 프리셋 표(workspace-write/danger-full-access)입니다. 스위치는 하나의 permission/preset 이벤트를 두 노브 이벤트에 기록합니다. |
ctx.codeRuntime | seam | code-runtime | code-runtime-worker | tools | - | 호스트 제공 비동기 바인딩에 대해 모델이 작성한 하나의 프로그램을 실행합니다. 백엔드는 기반과 언어에 따라 달라지며, 도구 레지스트리가 Code Mode용으로 이를 소비합니다. |
ctx.fs | seam | fs | fs-local, fs-sandbox, fs-e2b | tool-fs | fs-observation-policy | tool-fs는 ctx.fs를 통해 read/write/edit을 실행합니다. fs-sandbox는 공유 샌드박스 모드로 변경을 제한하고, fs-observation-policy는 fs/* 이벤트 게이트를 통해 관찰 상태 검사를 제공합니다. |
ctx.compaction | seam | compaction | compaction-basic | compaction-basic | - | 기본 백엔드는 단계 후 압력과 요청 오류 복구 이벤트를 소비하며 모델용 compact 도구는 없습니다. |
ctx.subagents | seam | subagent | subagent-spawn-in-process, subagent-fork-in-process, subagent-acp, subagent-codex, subagent-claude-code, subagent-dsh-sdk | tool-subagent, tool-subagent-control, tool-ralph | - | 공급자는 전송을 구현합니다. 서비스는 선택적 Activation 기반 계속 오케스트레이션도 소유하고, tool-subagent는 일회성 또는 계속 가능한 위임을 선택하며, tool-subagent-control은 후속 작업을 전달하고, tool-ralph는 하나의 새로운 구조화된 출력 경로를 요구합니다. |
ctx.jobs | seam | jobs | jobs-local | tool-bash, tool-terminal, tool-subagent, tool-jobs | - | 생산자(백그라운드 bash, PTY 전송 및 하위 에이전트 위임)는 실행 중인 작업을 등록합니다. tool-jobs는 이를 읽고 나열하고 종료하는 모델용 컨트롤러이며, jobs-local은 프로세스 로컬 레지스트리입니다. |
ctx.web | seam | web | web-search-exa, web-search-perplexity, web-search-deepseek, web-fetch-http | tool-web | - | 검색 및 가져오기 공급자는 하나의 ctx.web 심에 등록되며, tool-web은 안정적인 모델용 이름을 소유합니다. |
ctx.spillStore | seam | spill | spill-local | spill-policy | - | 백엔드는 과도하게 큰 도구 텍스트를 저장하고 모델용 위치 지정자와 검색 힌트를 반환합니다. spill-policy는 언제 넘칠지 결정하는 tools/post-execute 소비자입니다. |
ctx.directoryPicker | seam | directory-picker | directory-picker-native, directory-picker-browse | apiproxy | - | 판별된 상호작용 기능입니다. 네이티브 백엔드는 호스트 디스플레이에서 하나의 OS 선택기를 열고, browse 백엔드는 앱 내 브라우저용 나열/생성 기본 요소를 제공합니다. 이중 인터페이스 백엔드는 브라우저 절반에서 ui-workspace 디렉터리 흐름 슬롯을 채웁니다(와이어 공지는 없음). |
ctx.webServer | core | webserver | - | connection, modules, hmr | - | 단순 node:http 캐리어입니다. 이름이 지정된 경로 레지스트리, 인덱스 변환 탭 및 정적 dist 폴백을 제공하며, web-transport 플러그인이 자체 경로를 등록합니다. |
ctx.clientModules | core | modules | - | hmr | - | 증분 dsh.client 스캔에서 DSH_BOOT 진입 그래프를 구성하고, 플러그인 번들을 제공하며, 재빌드/그래프 변경 구독자에게 알립니다. |
ctx.workflowEngine | seam | workflow | workflow-worker-thread | tool-workflow, tool-ralph | - | 이름이 지정된 공급자 레지스트리 없이 bash와 같이 컨텍스트당 하나의 엔진을 사용합니다. 일반 워크플로와 고정 Ralph 소비자는 agent() 호출이 ctx.subagents를 통해 팬아웃되는 실행을 시작합니다. |
ctx.lsp | seam | lsp | lsp-local | tool-lsp | - | 정확히 네 작업에 대한 공급자 등록 및 선택과 정규화된 쿼리 실행을 제공합니다. 이 심은 프로토콜 이스케이프 해치를 제공하지 않으므로 백엔드는 정규화된 요청과 결과로 변환합니다. |
ctx.apiProxy | core | apiproxy | - | connection | - | 전송에 구애받지 않는 호스트 게이트웨이 인터페이스입니다. 브라우저 API 호출을 디스패치하며, 열려 있는 각 호스트 스트림은 브로드캐스트 동사를 통해 푸시되지 않고 전달하는 이벤트를 구독합니다. |
ctx.dynamicCordisRunner | core | cordis-host-runner | - | tool-cordis | - | 메모리 내 정의 레지스트리, 호스트 절반용 vm 샌드박스 및 요청-실행 왕복을 소유합니다. 브라우저 페이지는 원격 네임스페이스를 통해 와이어로 동일한 서비스에 도달합니다. |
ctx.cordisInspect | core | cordis-host-runner | - | tool-cordis | - | 호스트 inspect 공급자를 등록하고 클라이언트 공급자 매니페스트를 미러링하며, 동적 Cordis 전송을 통해 클라이언트 쿼리를 라우팅합니다. |
유지 관리 모드: 하이브리드: 서비스는 Cordis 선언에서 검색되며, interface/implementation/consumer 역할은 완전성 가드와 함께 scripts/gen-doc-graphs.ts에서 분류됩니다.