@g1cloud/bpmn-modeler-next 5.0.0-alpha.8 → 5.0.0-alpha.80

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.
@@ -19,6 +19,26 @@ export interface BwlPlacement {
19
19
  }
20
20
  /** 밴드 지정 힌트 — 프로세스 내부 가로 밴드(주 흐름 / 보조 스트랜드) 순번 */
21
21
  export type BwlBand = number;
22
+ /**
23
+ * 열 지목 힌트 — **그 노드보다 뒤(오른쪽) 열**에 둔다(표본 73 · 2026-09-22 신설).
24
+ *
25
+ * 🔴 **좌표가 아니라 관계다**(불변식 3) — `band` 가 행을 「가리키는 것」이지 y 가 아닌 것과 같은 성격이고,
26
+ * 실제 x 는 호스트가 산출한다(정렬·압축은 그 뒤에도 그대로 적용된다).
27
+ *
28
+ * **왜 필요한가** — 시퀀스 유입이 없는 수신 노드(메시지만 받는 노드)는 열을 정할 근거가 도구에 없다.
29
+ * 메시지 정렬(§4)은 송신자 열을 이어받고 블랙박스면 패스스루(B-36)로 **그 풀에 들어온** 메시지의
30
+ * 송신자 열을 쓰는데, 🔴 **보내기만 하는 블랙박스 풀에는 그 소스가 없다**(표본 73 실측: 그 문서의
31
+ * 시퀀스 유입 0 수신 노드 **5개 전부**가 이 형상). 그래서 시드가 고른 **풀 좌단**이 그대로 남고,
32
+ * 「시간축으로는 뒤쪽인 프로세스가 앞쪽에 놓여 선이 먼 거리를 돌아오는」 그림이 된다(사용자 증언).
33
+ *
34
+ * ⚠ **기계적 보완이 일반화되지 않는다** — 「형제 수신 노드의 열을 이어받는다」 같은 fallback 은 그
35
+ * 풀이 메시지를 **둘 이상 보낼 때만** 소스가 생기는데 실무 문서는 하나씩 보낸다(위 5/5). ⇒ 남는 길은
36
+ * **에이전트가 의미로 지목하는 것**이고 이 힌트가 그 채널이다.
37
+ *
38
+ * 값 = 기준 노드 id. ⚠ **참조가 깨져도 무해하다**(힌트 = 파생 정보 · 불변식 2) — 해소되지 않으면
39
+ * 힌트가 없는 것과 같이 동작한다.
40
+ */
41
+ export type BwlAfterColumn = string;
22
42
  /** 풀 세로 순서 힌트 */
23
43
  export type BwlPoolOrder = number;
24
44
  /**
@@ -70,6 +90,14 @@ export declare const BWL_MODDLE_SCHEMA: {
70
90
  readonly isAttr: true;
71
91
  readonly type: "Integer";
72
92
  }];
93
+ }, {
94
+ readonly name: "AfterColumnHint";
95
+ readonly extends: readonly ["bpmn:FlowNode"];
96
+ readonly properties: readonly [{
97
+ readonly name: "afterColumn";
98
+ readonly isAttr: true;
99
+ readonly type: "String";
100
+ }];
73
101
  }, {
74
102
  readonly name: "PoolOrderHint";
75
103
  readonly extends: readonly ["bpmn:Participant"];
package/dist/core/ir.d.ts CHANGED
@@ -6,13 +6,32 @@
6
6
  * 타입은 표준 BPMN 1:1 — AI 전용 타입 신설 금지(불변식 4).
7
7
  */
8
8
  /**
9
- * MVP 플로우 노드 타입 — 실운영 문서 실측 분포 기준(CLAUDE.md §A-1).
10
- * boundaryEvent · subProcess · intermediate 이벤트는 실파일 0건으로 후순위 강등
11
- * (스파이크 04·05 배치 실증이 있어 수요 발생 시 저비용 승격).
9
+ * **IR 이 표현하는 플로우 노드 타입** — `describeProcess` 가 노드로 내는 전량(read 집합).
10
+ *
11
+ * 🔴 `subProcess`·`boundaryEvent` 는 2026-09-21 승격됐다(B-87 ⓐ). 종전 강등 근거였던
12
+ * 「실파일 0건」은 **반품(고객측) 한 문서** 기준이었고, 코퍼스 26종 실측에서 무효화됐다
13
+ * (`subProcess` 22 · `boundaryEvent` 1 보유). 승격 전에는 그 타입이 든 문서에서 describe 가
14
+ * 끝점까지 지워 에이전트가 문서 절반을 못 봤다(실측 = `現行POS` 에서 메시지플로우 22건 소실).
15
+ *
16
+ * ⚠ **이 집합은 `ADDABLE_FLOW_NODE_TYPES` 의 상위집합이다** — 읽을 수 있다고 만들 수 있는 것이
17
+ * 아니다. 승격은 **불투명**이다: subProcess 를 노드로 내되 내부는 열지 않는다(내부 요소는
18
+ * `inside-container` 로 알린다). intermediate 계열(ⓑ)은 배치 실증이 없어 다음 단계다.
19
+ */
20
+ export declare const IR_FLOW_NODE_TYPES: readonly ["startEvent", "endEvent", "userTask", "serviceTask", "task", "sendTask", "receiveTask", "exclusiveGateway", "parallelGateway", "subProcess", "boundaryEvent"];
21
+ /**
22
+ * **op 가 새로 만들거나 타입 전환할 수 있는 집합**(write 집합) — 배치 하강이 실증된 것만.
23
+ *
24
+ * 🔴 read 와 갈라 둔 이유: 두 집합을 한 상수로 쓰면 승격이 `node.add`·`node.update` 어휘까지
25
+ * 함께 열어 **하강이 준비되지 않은 타입을 에이전트가 보낼 수 있게 된다**. `subProcess` 는 내부
26
+ * 좌표계를, `boundaryEvent` 는 `attachedToRef` 좌표 종속을 요구해 배치 축이 새로 생기는데
27
+ * (B-87 미측정 축 ①), 그 축은 이번 승격 범위 밖이다. 스키마 enum 이 1차 방어이고
28
+ * validator 의 `node-type-unsupported` 가 2차 방어다(Defense in Depth).
12
29
  */
13
- export declare const MVP_FLOW_NODE_TYPES: readonly ["startEvent", "endEvent", "userTask", "serviceTask", "task", "sendTask", "receiveTask", "exclusiveGateway", "parallelGateway"];
14
- export type IrFlowNodeType = (typeof MVP_FLOW_NODE_TYPES)[number];
15
- export declare function isMvpFlowNodeType(type: string): type is IrFlowNodeType;
30
+ export declare const ADDABLE_FLOW_NODE_TYPES: readonly ["startEvent", "endEvent", "userTask", "serviceTask", "task", "sendTask", "receiveTask", "exclusiveGateway", "parallelGateway"];
31
+ export type IrFlowNodeType = (typeof IR_FLOW_NODE_TYPES)[number];
32
+ export type AddableFlowNodeType = (typeof ADDABLE_FLOW_NODE_TYPES)[number];
33
+ export declare function isIrFlowNodeType(type: string): type is IrFlowNodeType;
34
+ export declare function isAddableFlowNodeType(type: string): type is AddableFlowNodeType;
16
35
  export interface IrLane {
17
36
  id: string;
18
37
  name?: string;
@@ -36,6 +55,13 @@ export interface IrNode {
36
55
  participant?: string;
37
56
  /** 소속 레인 (A-3) */
38
57
  lane?: string;
58
+ /**
59
+ * `boundaryEvent` 의 부착 대상 (B-87 ⓐ). **eventDefinition 과 다른 축이다** — 어떤 이벤트인지는
60
+ * 열지 않았지만(코퍼스 실측 1건) 부착 대상은 구조적 필수다: BPMN 에서 `attachedToRef` 없는
61
+ * boundaryEvent 는 무효이고, 이것이 없으면 에이전트에게 떠 있는 노드로 읽혀 탈출 흐름의 의미를
62
+ * 잃는다(실측 = `出荷_BNKR` 의 error 경계 이벤트가 subProcess 에 붙어 탈출 간선을 낸다).
63
+ */
64
+ attachedTo?: string;
39
65
  }
40
66
  /**
41
67
  * 조건은 게이트웨이가 아닌 플로우에 붙인다.
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@g1cloud/bpmn-modeler-next",
3
3
  "private": false,
4
- "version": "5.0.0-alpha.8",
4
+ "version": "5.0.0-alpha.80",
5
5
  "description": "Vue 3 BPMN document authoring editor (bpmn-js based) with AI agent authoring",
6
6
  "type": "module",
7
7
  "files": [
@@ -54,6 +54,7 @@
54
54
  "test": "vitest run",
55
55
  "test:watch": "vitest",
56
56
  "typecheck": "vue-tsc --noEmit",
57
+ "docs:size": "node scripts/check-docs-size.mjs",
57
58
  "check": "pnpm run test && pnpm run build"
58
59
  }
59
60
  }