라이브러리 사양
Context-Action 프레임워크 기술 사양
핵심 패키지
@context-action/core
- 목적: React 의존성 없는 핵심 액션 파이프라인 관리
- 주요 구성요소: ActionRegister, PipelineController
- 대상 환경: 모든 JavaScript 환경
@context-action/tool-protocol
- 목적: framework-neutral action schema와 MCP/provider tool 계약
- 의존성: root action-schema API를 위한 Zod 런타임 의존성
- 주요 구성요소:
defineAction, canonical tool call, provider adapter, approval queue, idempotency/provenance/observability 계약 - 대상 환경: 브라우저, Node.js 및 기타 JavaScript 환경
@context-action/tool-durable-operations
- 목적: 선택적인 durable mutation record와 외부 side-effect adapter
- 의존성: driver-neutral core, integration 검증 시 host 소유 Redis/PostgreSQL client 선택 사용
- 주요 구성요소: durable operation store, side-effect runner, HTTP/queue adapter, IndexedDB/Redis/PostgreSQL reference backend
- 대상 환경: 브라우저, Node.js 및 server worker
@context-action/ai-sdk
- 목적: canonical tool manager를 scoped model ToolSet으로 바꾸는 선택적 AI SDK v7 adapter
- 의존성:
@context-action/tool-protocolruntime dependency와 필수aipeer. React, core, provider, credential 의존성 없음 - 주요 구성요소:
createAISDKToolScope, native approval mapping, tool-call idempotency correlation, structured error mode - 대상 환경: AI SDK model client를 소유하는 browser 또는 server application
@context-action/webmcp
- 목적: 실험적 WebMCP imperative API를 통해 명시적인 canonical 도구 scope를 노출하는 선택적 browser adapter
- 의존성:
@context-action/tool-protocol; React 또는 model provider 의존성 없음 - 주요 구성요소:
createWebMCPToolScope, 명시적 tool-name allowlist, WebMCP call ID/idempotency correlation, model/agent provenance, abort 기반 등록 해제 - 대상 환경:
document.modelContext를 제공하는 표시 가능하고 cross-origin isolation이 적용된 browser 또는 webview document
@context-action/react
- 목적: Context API 및 훅을 통한 React 통합
- 의존성: React 19.2+(peer),
@context-action/core,@context-action/mutative,@context-action/tool-protocol,@context-action/webmcp. 배포된 React 3 artifact는 Durable Operations에 의존하지 않음 - 주요 기능: 스토어 관리, 액션 컨텍스트, Compiler 최적화 훅, Activity 안전 Provider lifecycle, React 19.2 SSR 지원. Store·Action API는
@context-action/react에서 import함
릴리스 및 보안 기준
- 패키지 기준 버전:
@context-action/core0.9.2,@context-action/react0.9.2,@context-action/tool-protocol0.8.9,@context-action/tool-durable-operations0.1.1,@context-action/ai-sdk0.1.0,@context-action/webmcp0.1.0 - 런타임 기준: Node.js
>=24.11.0, pnpm>=10.30.0, TypeScript6.0.3 - 의존성 보안:
pnpm security:audit를 필수 OSV 검사로 사용하며 현재 actionable 취약점은 0건이다. 해결된 의존성 최소 버전은 루트pnpm.overrides에서 강제한다. - 임시 예외:
GHSA-qwww-vcr4-c8h2에 대해react-router@7.18.1을 기간 한정 예외로 유지한다. 예제는 browser routing만 사용하고react-router-dom8.3.0은 아직 공개되지 않았으므로 2026-09-30 전에 재검토한다. - 검증 기준: 의존성 변경은
pnpm security:audit,pnpm type-check,pnpm test,pnpm docs:build, 예제check/build를 통과해야 한다.
API 인터페이스
주요 패턴
- Action Only 패턴:
createActionContext(contextName, config?) - Store Only 패턴:
createStoreContext(contextName, initialStores)
핵심 훅
useActionDispatch(): 액션 디스패치useActionHandler(): 액션 핸들러 등록useStoreValue(): 스토어 값 구독useStoreSelector(): 특정 스토어 필드 선택
성능 특성
- 핸들러 등록: Map을 통한 O(1) 조회
- 스토어 업데이트: React 상태 업데이트 배치 처리
- 메모리 사용: 언마운트 시 자동 정리
- 번들 크기: 빌드와 압축기에 따라 달라지며, 현재
pnpm --filter @context-action/react bundle-report기준 기본 React ESM 엔트리는 gzip 13.46 kB
TypeScript 통합
- strict 모드로 완전한 타입 안전성
- 스토어 및 액션에 대한 제네릭 타입 추론
- 컴파일 타임 페이로드 검증
- 페이로드 액션은 페이로드가 필수이고
void액션은 생략할 수 있음 DispatchOptions는 dispatch 및 결과 dispatch의 선택적 두 번째 인자ExecutionResult는 실제 파이프라인 실행 결과에서 실행·건너뜀·실패 핸들러 수를 집계
호환성
- React: 18.0.0 또는 19.0.0
- TypeScript: 6.0.3
- Node.js: 24.11.0+
- 번들러: Vite, Webpack, Rollup