pubuilder 0.5.0 → 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md ADDED
@@ -0,0 +1,90 @@
1
+ # Changelog
2
+
3
+ 이 프로젝트의 주요 변경 사항을 기록합니다.
4
+ 형식은 [Keep a Changelog](https://keepachangelog.com/ko/1.1.0/)를 따르며,
5
+ 버전은 [Semantic Versioning](https://semver.org/lang/ko/)을 따릅니다.
6
+ (0.x 단계이므로 breaking change는 minor 버전으로 올립니다.)
7
+
8
+ ## [0.7.0] - 2026-07-15
9
+
10
+ ### Added
11
+
12
+ - **블록별 동시 퍼블리싱** — 여러 블록을 동시에 퍼블리싱할 수 있고(서버 상한 3개),
13
+ 다른 블록을 선택하거나 미니맵을 닫아도 실행 중인 job이 끊기지 않는다. job 상태를
14
+ selection 종속 로컬 state에서 store(블록키별)로 승격.
15
+ - **"일시 종료"** — 진행 중인 모든 퍼블리싱 job을 강제 종료하고, 각 job이 편집한
16
+ 파일을 job 시작 시점(git stash 스냅샷)으로 되돌린다. 완료 job·사용자 편집과 겹치는
17
+ 파일은 파일 단위 충돌 GUI(이전으로/현재 유지/편집)로 해결한다.
18
+
19
+ ### Fixed
20
+
21
+ - 미니맵 캔버스의 "React Flow" 워터마크 제거(`hideAttribution`) + 우측 하단
22
+ 줌/핏 컨트롤러(`<Controls>`) 복원.
23
+
24
+ ## [0.6.0] - 2026-07-15
25
+
26
+ ### Added
27
+
28
+ - **퍼블리싱 완료 후 AI 후속 답변(이어가기)** — 퍼블리싱이 끝난 뒤 AI에게 후속 지시를
29
+ 보내 중단·확인 대기 중인 작업을 현재 작업 트리에서 이어서 완료하도록 함
30
+ (완료 상태의 답변 textarea, ⌘/Ctrl+Enter 전송).
31
+
32
+ ### Changed
33
+
34
+ - **스킬함 진입점을 퍼블리싱 패널로 이동** — 미니맵/뷰어 헤더의 🧰 스킬함 버튼을
35
+ 제거하고 퍼블리싱 패널 상단으로 옮김.
36
+ - 스킬함 드로어 UI 개편 — 안내문, 섹션 헤더(Figma 연결 / AI 작업 스킬),
37
+ 상태 배지, 스킬 소스 설명 추가.
38
+
39
+ ## [0.5.0] - 2026-07-15
40
+
41
+ ### ⚠️ Breaking Changes
42
+
43
+ - `defineIA` 헬퍼의 import 경로가 `pubuilder`에서 **`pubuilder/config`**로 바뀌었습니다.
44
+ `"use client"` React 번들 없이 config만 로드할 수 있도록 별도 서브패스 export로 분리했습니다.
45
+
46
+ ```diff
47
+ - import { defineIA } from 'pubuilder'
48
+ + import { defineIA } from 'pubuilder/config'
49
+ ```
50
+
51
+ `pubuilder scan`이 생성하는 `ia.config.ts` 템플릿도 새 경로를 사용합니다.
52
+
53
+ ### Fixed
54
+
55
+ - 에이전트 spawn 시 `--setting-sources`를 격리해 스킬 화이트리스트가 실효성을 갖도록 수정.
56
+ - 컴패니언 서버: 종료 잡 상한 유지, publish 요청 바디 검증, 캐시 파일명 정규화.
57
+
58
+ ### Changed
59
+
60
+ - 상대경로 import에 `.js` 확장자를 명시(NodeNext ESM 해석).
61
+ - 데모(playground)를 음악 플랫폼(wavbor)에서 AI 에이전트 플랫폼(NIMBUS)으로 교체.
62
+
63
+ ## [0.4.0] - 2026-07-14
64
+
65
+ ### Added
66
+
67
+ - **AI 퍼블리싱 기능** — 미니맵에서 Figma 시안을 코드로 퍼블리싱하는 워크플로우.
68
+ - 컴패니언 HTTP 서버: 스킬 레지스트리(스캔/토글/업로드/삭제), Figma 토큰 로드·저장,
69
+ Figma 노드 JSON·PNG fetch, 퍼블리싱 잡 매니저, SSE 로그 스트리밍.
70
+ - 퍼블리싱 패널 UI: Figma URL 입력·실행·SSE 로그·중단.
71
+ - 스킬함 드로어: 스킬 목록/토글/업로드/삭제, 토큰 설정.
72
+ - CLI `serve`/`dev` 서브커맨드 — 컴패니언 서버 기동 및 dev 래퍼.
73
+
74
+ ### Changed
75
+
76
+ - 패키지명을 `pubmap`에서 **`pubuilder`**로 전면 개명(npm이 `pubmap`을 거부).
77
+
78
+ ## [0.3.0] - 2026-07-13
79
+
80
+ ### Added
81
+
82
+ - 최초 npm 공개 배포.
83
+ - `pubuilder scan` CLI — Next.js 라우트를 스캔해 `ia.config.ts` 생성/병합.
84
+ - `PageMap` 미니맵 컴포넌트 — 화면설계서(IA) 기반 페이지 트리를 iframe 썸네일로 렌더링.
85
+
86
+ [0.7.0]: https://www.npmjs.com/package/pubuilder/v/0.7.0
87
+ [0.6.0]: https://www.npmjs.com/package/pubuilder/v/0.6.0
88
+ [0.5.0]: https://www.npmjs.com/package/pubuilder/v/0.5.0
89
+ [0.4.0]: https://www.npmjs.com/package/pubuilder/v/0.4.0
90
+ [0.3.0]: https://www.npmjs.com/package/pubuilder/v/0.3.0
package/dist/api.d.ts CHANGED
@@ -15,6 +15,21 @@ export interface TokenStatus {
15
15
  configured: boolean;
16
16
  masked: string | null;
17
17
  }
18
+ /** 일시 종료 시 롤백이 완료 job/사용자 편집과 겹치는 파일 */
19
+ export interface SuspendConflict {
20
+ file: string;
21
+ baseline: string;
22
+ current: string;
23
+ }
24
+ export interface SuspendResult {
25
+ autoReverted: string[];
26
+ conflicts: SuspendConflict[];
27
+ }
28
+ export type SuspendResolution = {
29
+ file: string;
30
+ action: 'revert' | 'keep' | 'edit';
31
+ content?: string;
32
+ };
18
33
  /** 서버 에러 응답의 code(server/errors.ts 계약)를 UI 분기용으로 실어 나르는 에러 */
19
34
  export declare class ApiError extends Error {
20
35
  readonly code?: string | undefined;
@@ -36,10 +51,15 @@ export declare class PubuilderApi {
36
51
  selection: BlockSelection;
37
52
  outerHTML: string;
38
53
  figmaUrl: string;
54
+ instruction?: string;
39
55
  }): Promise<{
40
56
  jobId: string;
41
57
  }>;
42
58
  cancelPublish(jobId: string): Promise<void>;
59
+ /** 진행 중 job 전체 kill + 파일 자동롤백/충돌 분류 */
60
+ suspendPublish(): Promise<SuspendResult>;
61
+ /** 충돌 파일 결정(revert/keep/edit) 적용 */
62
+ resolveSuspend(resolutions: SuspendResolution[]): Promise<void>;
43
63
  /** SSE 구독 — 반환값 호출로 해제 */
44
64
  subscribePublish(jobId: string, onEvent: (e: AgentEvent) => void): () => void;
45
65
  }