@decencia/ch-cli 1.26.0 → 1.28.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/agent/2t-decencia-channel-issue-coder.md +1 -1
- package/agent/2t-decencia-channel-pr-merger.md +1 -1
- package/agent/2t-decencia-channel-terraformer.md +1 -1
- package/dist/commands/requests.d.ts.map +1 -1
- package/dist/commands/requests.js +10 -0
- package/dist/commands/requests.js.map +1 -1
- package/dist/commands/skills.d.ts +87 -0
- package/dist/commands/skills.d.ts.map +1 -0
- package/dist/commands/skills.js +387 -0
- package/dist/commands/skills.js.map +1 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +6 -0
- package/dist/config.js.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/skill/2t-decencia-channel-change-manager/SKILL.md +1 -1
- package/skill/2t-decencia-channel-change-propagation-v2/SKILL.md +1 -1
- package/skill/2t-decencia-channel-cli-v2/SKILL.md +3 -2
- package/skill/2t-decencia-channel-db-schema-v2/SKILL.md +1 -1
- package/skill/2t-decencia-channel-github-issue/SKILL.md +1 -1
- package/skill/2t-decencia-channel-orchestrator/SKILL.md +1 -1
- package/skill/2t-decencia-channel-prd-v2/SKILL.md +1 -1
- package/skill/2t-decencia-channel-project-bootstrap/SKILL.md +1 -1
- package/skill/2t-decencia-channel-spec-v2/SKILL.md +1 -1
- package/skill/2t-decencia-channel-sprint-builder-v2/SKILL.md +1 -1
- package/skill/2t-decencia-channel-sprint-runner/SKILL.md +1 -1
- package/skill/2t-decencia-channel-sqa-v2/SKILL.md +1 -1
- package/skill/2t-decencia-channel-work-status-v2/SKILL.md +1 -1
|
@@ -3,7 +3,7 @@ name: 2t-decencia-channel-issue-coder
|
|
|
3
3
|
description: GitHub issue 1개를 입력으로 받아 끝까지 처리하는 코딩 에이전트. 이슈 읽기 → 소통채널 spec/SQA 확인 → git worktree+브랜치에서 구현 → 자체 소프트리뷰 루프 → unittest + SQA → PR 생성 → 소통채널 workStatus·이슈 기록. 다수 병렬 실행 전제, PR까지만(머지·base 브랜치 직접 push·이슈 close는 사람).
|
|
4
4
|
tools: Read, Write, Edit, Grep, Glob, Bash, Agent
|
|
5
5
|
model: opus
|
|
6
|
-
version: 1.
|
|
6
|
+
version: 1.28.0
|
|
7
7
|
---
|
|
8
8
|
|
|
9
9
|
## 역할
|
|
@@ -3,7 +3,7 @@ name: 2t-decencia-channel-pr-merger
|
|
|
3
3
|
description: issue-coder가 낸 PR을 기본 완전 자율로 base 브랜치(기본 브랜치 또는 sprint 통합 브랜치)에 머지하는 에이전트. 핵심 역량은 다수 병렬 worktree가 만든 충돌을 작업 의도 기반(semantic)으로 해결하는 것. CI green+충돌없음이면 바로 squash 머지, 충돌이면 의도대로 해결 후 테스트로 검증하여 머지. 재SQA·전면 재리뷰는 하지 않음. 다수 PR은 직렬 머지.
|
|
4
4
|
tools: Read, Write, Edit, Grep, Glob, Bash
|
|
5
5
|
model: opus
|
|
6
|
-
version: 1.
|
|
6
|
+
version: 1.28.0
|
|
7
7
|
---
|
|
8
8
|
|
|
9
9
|
## 역할
|
|
@@ -3,7 +3,7 @@ name: 2t-decencia-channel-terraformer
|
|
|
3
3
|
description: 소통채널을 쓰지 않던 기존 코드베이스를 역분석하여 소통채널 프로젝트로 편입(terraforming)하는 자율 에이전트. 코드가 single source of truth — 코드를 읽어 DB 스키마 → 기능명세(spec) → PRD를 bottom-up으로 역생성한다(SQA 제외). 대량 분석은 서브에이전트 병렬, 코드로 못 메우는 의도는 [추정]으로 채우고 "사람확인 질문 리스트"를 산출물로 남긴다. PR/머지·이슈 발행은 하지 않음.
|
|
4
4
|
tools: Read, Write, Edit, Grep, Glob, Bash, Agent
|
|
5
5
|
model: opus
|
|
6
|
-
version: 1.
|
|
6
|
+
version: 1.28.0
|
|
7
7
|
---
|
|
8
8
|
|
|
9
9
|
## 역할
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"requests.d.ts","sourceRoot":"","sources":["../../src/commands/requests.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAUpC;;;;;;GAMG;AACH,eAAO,MAAM,yBAAyB,EAAE,WAAW,CAAC,MAAM,CAqBxD,CAAC;AAEH,2CAA2C;AAC3C,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAG7D;AAED,6DAA6D;AAC7D,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAKxD;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE;IACxC,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,GAAG,CAAC,EAAE,OAAO,CAAC;CACf,GAAG,MAAM,CAQT;AAED,oDAAoD;AACpD,wBAAgB,YAAY,CAAC,CAAC,EAAE,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAS5D;AAmCD,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA+
|
|
1
|
+
{"version":3,"file":"requests.d.ts","sourceRoot":"","sources":["../../src/commands/requests.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAUpC;;;;;;GAMG;AACH,eAAO,MAAM,yBAAyB,EAAE,WAAW,CAAC,MAAM,CAqBxD,CAAC;AAEH,2CAA2C;AAC3C,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAG7D;AAED,6DAA6D;AAC7D,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAKxD;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE;IACxC,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,GAAG,CAAC,EAAE,OAAO,CAAC;CACf,GAAG,MAAM,CAQT;AAED,oDAAoD;AACpD,wBAAgB,YAAY,CAAC,CAAC,EAAE,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAS5D;AAmCD,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA+R9D"}
|
|
@@ -209,6 +209,7 @@ function registerRequestsCommand(program) {
|
|
|
209
209
|
.option('--plan-change-note <text>', '기획 변경 내역(마크다운)')
|
|
210
210
|
.option('--resolution <text>', '처리결과(마크다운) — 이 요청을 어떻게 처리했는지')
|
|
211
211
|
.option('--spec-refs <ids>', '해소 spec ID (쉼표 구분)')
|
|
212
|
+
.option('--related-specs <ids>', '연관 spec ID (참고·맥락 링크, 쉼표 구분 — 해소 spec과 독립)')
|
|
212
213
|
.option('--attach <filePaths>', '첨부파일 경로 (쉼표 구분, 이미지·gif·mp4만 허용)')
|
|
213
214
|
.action(async (options) => {
|
|
214
215
|
const globalOpts = program.opts();
|
|
@@ -249,6 +250,11 @@ function registerRequestsCommand(program) {
|
|
|
249
250
|
form.append('specRefs', ref);
|
|
250
251
|
}
|
|
251
252
|
}
|
|
253
|
+
if (options.relatedSpecs) {
|
|
254
|
+
for (const ref of (0, utils_1.parseCommaSeparated)(options.relatedSpecs)) {
|
|
255
|
+
form.append('relatedSpecs', ref);
|
|
256
|
+
}
|
|
257
|
+
}
|
|
252
258
|
if (options.attach) {
|
|
253
259
|
const filePaths = parseAttachList(options.attach);
|
|
254
260
|
for (const filePath of filePaths) {
|
|
@@ -289,6 +295,7 @@ function registerRequestsCommand(program) {
|
|
|
289
295
|
.option('--plan-change-note <text>', '기획 변경 내역(마크다운)')
|
|
290
296
|
.option('--resolution <text>', '처리결과(마크다운) — 이 요청을 어떻게 처리했는지')
|
|
291
297
|
.option('--spec-refs <ids>', '해소 spec ID (쉼표 구분)')
|
|
298
|
+
.option('--related-specs <ids>', '연관 spec ID (참고·맥락 링크, 쉼표 구분 — 해소 spec과 독립)')
|
|
292
299
|
.action(async (requestId, options) => {
|
|
293
300
|
const globalOpts = program.opts();
|
|
294
301
|
try {
|
|
@@ -324,6 +331,9 @@ function registerRequestsCommand(program) {
|
|
|
324
331
|
if (options.specRefs !== undefined) {
|
|
325
332
|
body.specRefs = (0, utils_1.parseCommaSeparated)(options.specRefs);
|
|
326
333
|
}
|
|
334
|
+
if (options.relatedSpecs !== undefined) {
|
|
335
|
+
body.relatedSpecs = (0, utils_1.parseCommaSeparated)(options.relatedSpecs);
|
|
336
|
+
}
|
|
327
337
|
if (Object.keys(body).length === 0) {
|
|
328
338
|
(0, output_1.failInput)('수정할 필드를 지정하세요.');
|
|
329
339
|
return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"requests.js","sourceRoot":"","sources":["../../src/commands/requests.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"requests.js","sourceRoot":"","sources":["../../src/commands/requests.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { Command } from 'commander';
|
|
2
|
+
/** 스킬 스코프 — 글로벌(팀 공유) 또는 프로젝트(서브컬렉션). */
|
|
3
|
+
export type SkillScope = 'global' | 'project';
|
|
4
|
+
/** 업로드 대상 파일 하나 — 절대경로 + 폴더 루트 기준 상대경로(POSIX). */
|
|
5
|
+
export interface SkillUpload {
|
|
6
|
+
absPath: string;
|
|
7
|
+
relPath: string;
|
|
8
|
+
}
|
|
9
|
+
/** SKILL.md frontmatter 에서 뽑는 인덱스(라우팅 신호). */
|
|
10
|
+
export interface SkillFrontmatter {
|
|
11
|
+
name: string;
|
|
12
|
+
description: string;
|
|
13
|
+
}
|
|
14
|
+
/** ch-api 가 돌려주는 목록 항목(list 응답)의 최소 형태. */
|
|
15
|
+
interface SkillIndexEntry {
|
|
16
|
+
id: string;
|
|
17
|
+
name: string;
|
|
18
|
+
}
|
|
19
|
+
/** 스킬 폴더 규약상 고정된 매니페스트 파일명. frontmatter 의 출처. */
|
|
20
|
+
export declare const SKILL_MANIFEST_FILENAME = "SKILL.md";
|
|
21
|
+
/**
|
|
22
|
+
* 스코프를 결정한다: `--global` 이면 글로벌(팀 공유), 아니면 프로젝트.
|
|
23
|
+
*
|
|
24
|
+
* 프로젝트 스코프에서 "어느 프로젝트냐"는 ch 전역 규약대로 프로젝트 컨텍스트
|
|
25
|
+
* (`--project <projectId>` / `.ch-project` / `~/.ch/config.json`)로 정한다.
|
|
26
|
+
* ch 는 이미 `--project <projectId>`(값 있는 옵션)를 전역으로 쓰므로, 같은 이름의
|
|
27
|
+
* boolean `--project` 스코프 플래그는 둘 수 없다(commander 가 값 옵션으로 해석).
|
|
28
|
+
* 그래서 프로젝트 스코프는 `--global` 의 부재로 나타낸다 — 다른 모든 ch 커맨드가
|
|
29
|
+
* 프로젝트를 다루는 방식과 동일하다.
|
|
30
|
+
*/
|
|
31
|
+
export declare function resolveScope(opts: {
|
|
32
|
+
global?: boolean;
|
|
33
|
+
}): SkillScope;
|
|
34
|
+
/** 스코프별 ch-api 기본 경로. */
|
|
35
|
+
export declare function skillBasePath(scope: SkillScope): string;
|
|
36
|
+
/**
|
|
37
|
+
* `list` 가 조회할 스코프들을 정한다(소비 인덱스용).
|
|
38
|
+
* - `--global` 이면 글로벌만.
|
|
39
|
+
* - 플래그가 없으면 글로벌+프로젝트 둘 다 — 에이전트가 팀 공유 스킬과 프로젝트
|
|
40
|
+
* 스킬을 한 목록에서 보고 고르게(각 항목의 scope 로 구분). 웹 스킬 목록
|
|
41
|
+
* 화면(SKILL-001)이 두 스코프를 함께 보여주는 것과 같은 소비 모델이다.
|
|
42
|
+
*
|
|
43
|
+
* get/register/update 는 대상 스코프가 하나여야 하므로 resolveScope(단일)를
|
|
44
|
+
* 쓰지만, list 는 읽기 전용 발견(discovery)이라 기본을 합집합으로 넓힌다.
|
|
45
|
+
*/
|
|
46
|
+
export declare function scopesToList(opts: {
|
|
47
|
+
global?: boolean;
|
|
48
|
+
}): SkillScope[];
|
|
49
|
+
/**
|
|
50
|
+
* Content-Type 헤더에서 순수 MIME 타입만 뽑는다(`; charset=...` 파라미터 제거).
|
|
51
|
+
* 값이 없으면 application/octet-stream 으로 폴백.
|
|
52
|
+
*/
|
|
53
|
+
export declare function extractMime(contentType: string | undefined): string;
|
|
54
|
+
/**
|
|
55
|
+
* 폴더를 재귀적으로 훑어 업로드 대상 파일 목록을 만든다.
|
|
56
|
+
* 하위 폴더·임의 파일을 모두 보존하고, 상대경로는 폴더 루트 기준 POSIX(`/`)로
|
|
57
|
+
* 정규화한다(서버의 paths 정렬 규칙과 맞춤). 결과는 상대경로 사전순 정렬.
|
|
58
|
+
* (심볼릭 링크는 건너뛴다 — 루프·바깥 참조 방지.)
|
|
59
|
+
*/
|
|
60
|
+
export declare function collectSkillFiles(dir: string): SkillUpload[];
|
|
61
|
+
/**
|
|
62
|
+
* 상대경로 목록에서 루트에 가장 가까운 SKILL.md 를 고른다(서버 규칙과 동일).
|
|
63
|
+
* 없으면 undefined.
|
|
64
|
+
*/
|
|
65
|
+
export declare function pickRootSkillMd(relPaths: string[]): string | undefined;
|
|
66
|
+
/**
|
|
67
|
+
* SKILL.md 텍스트에서 frontmatter(name·description)를 뽑는다(서버 파서와 동일 규약).
|
|
68
|
+
* frontmatter 블록이 없거나 필드가 비면 빈 문자열 — 검증/거부는 호출측 책임.
|
|
69
|
+
* 서버(ch-api)가 최종 SSOT지만, 업로드 전에 여기서 먼저 걸러 헛수고를 막는다.
|
|
70
|
+
*/
|
|
71
|
+
export declare function parseSkillFrontmatter(markdown: string): SkillFrontmatter;
|
|
72
|
+
/** 목록에서 name 으로 스킬 문서 id 를 찾는다(update 의 name→id 해석). */
|
|
73
|
+
export declare function findSkillIdByName(list: SkillIndexEntry[], name: string): string | undefined;
|
|
74
|
+
/**
|
|
75
|
+
* 스킬 폴더를 검증하고 업로드 대상을 만든다(신규 등록·수정 공용).
|
|
76
|
+
* - 폴더 존재·디렉터리 여부
|
|
77
|
+
* - 파일 존재(빈 폴더 거부)
|
|
78
|
+
* - 루트 SKILL.md 존재 + frontmatter(name·description) 존재
|
|
79
|
+
* 실패 시 사용자 친화 에러를 throw 한다.
|
|
80
|
+
*/
|
|
81
|
+
export declare function prepareSkillUpload(dir: string): {
|
|
82
|
+
uploads: SkillUpload[];
|
|
83
|
+
frontmatter: SkillFrontmatter;
|
|
84
|
+
};
|
|
85
|
+
export declare function registerSkillsCommand(program: Command): void;
|
|
86
|
+
export {};
|
|
87
|
+
//# sourceMappingURL=skills.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skills.d.ts","sourceRoot":"","sources":["../../src/commands/skills.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAepC,yCAAyC;AACzC,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,SAAS,CAAC;AAE9C,kDAAkD;AAClD,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,8CAA8C;AAC9C,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,2CAA2C;AAC3C,UAAU,eAAe;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;CACd;AAED,iDAAiD;AACjD,eAAO,MAAM,uBAAuB,aAAa,CAAC;AAIlD;;;;;;;;;GASG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,UAAU,CAEnE;AAED,yBAAyB;AACzB,wBAAgB,aAAa,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAEvD;AAED;;;;;;;;;GASG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,UAAU,EAAE,CAErE;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAGnE;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,EAAE,CAqB5D;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,GAAG,SAAS,CAQtE;AAeD;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,gBAAgB,CA+BxE;AAED,wDAAwD;AACxD,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,eAAe,EAAE,EACvB,IAAI,EAAE,MAAM,GACX,MAAM,GAAG,SAAS,CAEpB;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG;IAC/C,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,WAAW,EAAE,gBAAgB,CAAC;CAC/B,CAgCA;AAqBD,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAyM5D"}
|
|
@@ -0,0 +1,387 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
+
};
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.SKILL_MANIFEST_FILENAME = void 0;
|
|
40
|
+
exports.resolveScope = resolveScope;
|
|
41
|
+
exports.skillBasePath = skillBasePath;
|
|
42
|
+
exports.scopesToList = scopesToList;
|
|
43
|
+
exports.extractMime = extractMime;
|
|
44
|
+
exports.collectSkillFiles = collectSkillFiles;
|
|
45
|
+
exports.pickRootSkillMd = pickRootSkillMd;
|
|
46
|
+
exports.parseSkillFrontmatter = parseSkillFrontmatter;
|
|
47
|
+
exports.findSkillIdByName = findSkillIdByName;
|
|
48
|
+
exports.prepareSkillUpload = prepareSkillUpload;
|
|
49
|
+
exports.registerSkillsCommand = registerSkillsCommand;
|
|
50
|
+
const fs = __importStar(require("fs"));
|
|
51
|
+
const path = __importStar(require("path"));
|
|
52
|
+
const form_data_1 = __importDefault(require("form-data"));
|
|
53
|
+
const client_1 = require("../client");
|
|
54
|
+
const output_1 = require("../output");
|
|
55
|
+
/** 스킬 폴더 규약상 고정된 매니페스트 파일명. frontmatter 의 출처. */
|
|
56
|
+
exports.SKILL_MANIFEST_FILENAME = 'SKILL.md';
|
|
57
|
+
// ── 순수 헬퍼 (단위 테스트 대상) ──────────────────────────────────────────
|
|
58
|
+
/**
|
|
59
|
+
* 스코프를 결정한다: `--global` 이면 글로벌(팀 공유), 아니면 프로젝트.
|
|
60
|
+
*
|
|
61
|
+
* 프로젝트 스코프에서 "어느 프로젝트냐"는 ch 전역 규약대로 프로젝트 컨텍스트
|
|
62
|
+
* (`--project <projectId>` / `.ch-project` / `~/.ch/config.json`)로 정한다.
|
|
63
|
+
* ch 는 이미 `--project <projectId>`(값 있는 옵션)를 전역으로 쓰므로, 같은 이름의
|
|
64
|
+
* boolean `--project` 스코프 플래그는 둘 수 없다(commander 가 값 옵션으로 해석).
|
|
65
|
+
* 그래서 프로젝트 스코프는 `--global` 의 부재로 나타낸다 — 다른 모든 ch 커맨드가
|
|
66
|
+
* 프로젝트를 다루는 방식과 동일하다.
|
|
67
|
+
*/
|
|
68
|
+
function resolveScope(opts) {
|
|
69
|
+
return opts.global ? 'global' : 'project';
|
|
70
|
+
}
|
|
71
|
+
/** 스코프별 ch-api 기본 경로. */
|
|
72
|
+
function skillBasePath(scope) {
|
|
73
|
+
return scope === 'global' ? '/skills/global' : '/skills/project';
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* `list` 가 조회할 스코프들을 정한다(소비 인덱스용).
|
|
77
|
+
* - `--global` 이면 글로벌만.
|
|
78
|
+
* - 플래그가 없으면 글로벌+프로젝트 둘 다 — 에이전트가 팀 공유 스킬과 프로젝트
|
|
79
|
+
* 스킬을 한 목록에서 보고 고르게(각 항목의 scope 로 구분). 웹 스킬 목록
|
|
80
|
+
* 화면(SKILL-001)이 두 스코프를 함께 보여주는 것과 같은 소비 모델이다.
|
|
81
|
+
*
|
|
82
|
+
* get/register/update 는 대상 스코프가 하나여야 하므로 resolveScope(단일)를
|
|
83
|
+
* 쓰지만, list 는 읽기 전용 발견(discovery)이라 기본을 합집합으로 넓힌다.
|
|
84
|
+
*/
|
|
85
|
+
function scopesToList(opts) {
|
|
86
|
+
return opts.global ? ['global'] : ['global', 'project'];
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Content-Type 헤더에서 순수 MIME 타입만 뽑는다(`; charset=...` 파라미터 제거).
|
|
90
|
+
* 값이 없으면 application/octet-stream 으로 폴백.
|
|
91
|
+
*/
|
|
92
|
+
function extractMime(contentType) {
|
|
93
|
+
const base = (contentType || '').split(';')[0].trim();
|
|
94
|
+
return base || 'application/octet-stream';
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* 폴더를 재귀적으로 훑어 업로드 대상 파일 목록을 만든다.
|
|
98
|
+
* 하위 폴더·임의 파일을 모두 보존하고, 상대경로는 폴더 루트 기준 POSIX(`/`)로
|
|
99
|
+
* 정규화한다(서버의 paths 정렬 규칙과 맞춤). 결과는 상대경로 사전순 정렬.
|
|
100
|
+
* (심볼릭 링크는 건너뛴다 — 루프·바깥 참조 방지.)
|
|
101
|
+
*/
|
|
102
|
+
function collectSkillFiles(dir) {
|
|
103
|
+
const root = path.resolve(dir);
|
|
104
|
+
const out = [];
|
|
105
|
+
const walk = (current) => {
|
|
106
|
+
const entries = fs.readdirSync(current, { withFileTypes: true });
|
|
107
|
+
for (const entry of entries) {
|
|
108
|
+
const abs = path.join(current, entry.name);
|
|
109
|
+
if (entry.isSymbolicLink())
|
|
110
|
+
continue;
|
|
111
|
+
if (entry.isDirectory()) {
|
|
112
|
+
walk(abs);
|
|
113
|
+
}
|
|
114
|
+
else if (entry.isFile()) {
|
|
115
|
+
const rel = path.relative(root, abs).split(path.sep).join('/');
|
|
116
|
+
out.push({ absPath: abs, relPath: rel });
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
};
|
|
120
|
+
walk(root);
|
|
121
|
+
out.sort((a, b) => a.relPath.localeCompare(b.relPath));
|
|
122
|
+
return out;
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* 상대경로 목록에서 루트에 가장 가까운 SKILL.md 를 고른다(서버 규칙과 동일).
|
|
126
|
+
* 없으면 undefined.
|
|
127
|
+
*/
|
|
128
|
+
function pickRootSkillMd(relPaths) {
|
|
129
|
+
return relPaths
|
|
130
|
+
.filter((p) => p === exports.SKILL_MANIFEST_FILENAME ||
|
|
131
|
+
p.endsWith(`/${exports.SKILL_MANIFEST_FILENAME}`))
|
|
132
|
+
.sort((a, b) => a.split('/').length - b.split('/').length)[0];
|
|
133
|
+
}
|
|
134
|
+
/** 값 양끝의 짝맞는 따옴표(' 또는 ")를 벗긴다. */
|
|
135
|
+
function stripQuotes(value) {
|
|
136
|
+
const trimmed = value.trim();
|
|
137
|
+
if (trimmed.length >= 2) {
|
|
138
|
+
const first = trimmed[0];
|
|
139
|
+
const last = trimmed[trimmed.length - 1];
|
|
140
|
+
if ((first === '"' || first === "'") && first === last) {
|
|
141
|
+
return trimmed.slice(1, -1);
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
return trimmed;
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* SKILL.md 텍스트에서 frontmatter(name·description)를 뽑는다(서버 파서와 동일 규약).
|
|
148
|
+
* frontmatter 블록이 없거나 필드가 비면 빈 문자열 — 검증/거부는 호출측 책임.
|
|
149
|
+
* 서버(ch-api)가 최종 SSOT지만, 업로드 전에 여기서 먼저 걸러 헛수고를 막는다.
|
|
150
|
+
*/
|
|
151
|
+
function parseSkillFrontmatter(markdown) {
|
|
152
|
+
const empty = { name: '', description: '' };
|
|
153
|
+
if (!markdown)
|
|
154
|
+
return empty;
|
|
155
|
+
const text = markdown.charCodeAt(0) === 0xfeff ? markdown.slice(1) : markdown;
|
|
156
|
+
const lines = text.split(/\r?\n/);
|
|
157
|
+
let start = 0;
|
|
158
|
+
while (start < lines.length && lines[start].trim() === '')
|
|
159
|
+
start++;
|
|
160
|
+
if (start >= lines.length || lines[start].trim() !== '---')
|
|
161
|
+
return empty;
|
|
162
|
+
let end = -1;
|
|
163
|
+
for (let i = start + 1; i < lines.length; i++) {
|
|
164
|
+
if (lines[i].trim() === '---') {
|
|
165
|
+
end = i;
|
|
166
|
+
break;
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
if (end === -1)
|
|
170
|
+
return empty;
|
|
171
|
+
const result = { name: '', description: '' };
|
|
172
|
+
for (let i = start + 1; i < end; i++) {
|
|
173
|
+
const line = lines[i];
|
|
174
|
+
const colon = line.indexOf(':');
|
|
175
|
+
if (colon === -1)
|
|
176
|
+
continue;
|
|
177
|
+
const key = line.slice(0, colon).trim();
|
|
178
|
+
const value = stripQuotes(line.slice(colon + 1));
|
|
179
|
+
if (key === 'name')
|
|
180
|
+
result.name = value;
|
|
181
|
+
else if (key === 'description')
|
|
182
|
+
result.description = value;
|
|
183
|
+
}
|
|
184
|
+
return result;
|
|
185
|
+
}
|
|
186
|
+
/** 목록에서 name 으로 스킬 문서 id 를 찾는다(update 의 name→id 해석). */
|
|
187
|
+
function findSkillIdByName(list, name) {
|
|
188
|
+
return list.find((s) => s.name === name)?.id;
|
|
189
|
+
}
|
|
190
|
+
/**
|
|
191
|
+
* 스킬 폴더를 검증하고 업로드 대상을 만든다(신규 등록·수정 공용).
|
|
192
|
+
* - 폴더 존재·디렉터리 여부
|
|
193
|
+
* - 파일 존재(빈 폴더 거부)
|
|
194
|
+
* - 루트 SKILL.md 존재 + frontmatter(name·description) 존재
|
|
195
|
+
* 실패 시 사용자 친화 에러를 throw 한다.
|
|
196
|
+
*/
|
|
197
|
+
function prepareSkillUpload(dir) {
|
|
198
|
+
const resolved = path.resolve(dir);
|
|
199
|
+
if (!fs.existsSync(resolved)) {
|
|
200
|
+
throw new Error(`폴더를 찾을 수 없습니다: ${resolved}`);
|
|
201
|
+
}
|
|
202
|
+
if (!fs.statSync(resolved).isDirectory()) {
|
|
203
|
+
throw new Error(`폴더가 아닙니다(파일 경로): ${resolved}`);
|
|
204
|
+
}
|
|
205
|
+
const uploads = collectSkillFiles(resolved);
|
|
206
|
+
if (uploads.length === 0) {
|
|
207
|
+
throw new Error(`빈 폴더입니다(업로드할 파일이 없습니다): ${resolved}`);
|
|
208
|
+
}
|
|
209
|
+
const skillMdRel = pickRootSkillMd(uploads.map((u) => u.relPath));
|
|
210
|
+
if (!skillMdRel) {
|
|
211
|
+
throw new Error(`SKILL.md 가 없습니다. 스킬 폴더 루트에 ${exports.SKILL_MANIFEST_FILENAME} 가 필요합니다: ${resolved}`);
|
|
212
|
+
}
|
|
213
|
+
const skillMd = uploads.find((u) => u.relPath === skillMdRel);
|
|
214
|
+
const frontmatter = parseSkillFrontmatter(fs.readFileSync(skillMd.absPath, 'utf-8'));
|
|
215
|
+
if (!frontmatter.name || !frontmatter.description) {
|
|
216
|
+
throw new Error(`${exports.SKILL_MANIFEST_FILENAME} frontmatter 에 name·description 이 모두 필요합니다: ${skillMdRel}`);
|
|
217
|
+
}
|
|
218
|
+
return { uploads, frontmatter };
|
|
219
|
+
}
|
|
220
|
+
/**
|
|
221
|
+
* 폴더구조를 보존한 multipart 폼을 만든다.
|
|
222
|
+
* `files` 를 상대경로 정렬 순서대로 append 하고, 같은 순서의 `paths`(JSON 배열)를
|
|
223
|
+
* 함께 보낸다 — 서버가 paths[i] 를 files[i] 의 상대경로로 매칭한다.
|
|
224
|
+
*/
|
|
225
|
+
function buildUploadForm(uploads) {
|
|
226
|
+
const form = new form_data_1.default();
|
|
227
|
+
form.append('paths', JSON.stringify(uploads.map((u) => u.relPath)));
|
|
228
|
+
for (const u of uploads) {
|
|
229
|
+
form.append('files', fs.createReadStream(u.absPath));
|
|
230
|
+
}
|
|
231
|
+
return form;
|
|
232
|
+
}
|
|
233
|
+
// ── 커맨드 등록 ────────────────────────────────────────────────────────────
|
|
234
|
+
function registerSkillsCommand(program) {
|
|
235
|
+
const skills = program
|
|
236
|
+
.command('skills')
|
|
237
|
+
.description('스킬 목록·조회·등록·수정 (E19) — ch-api /skills 프록시');
|
|
238
|
+
// ch skills list
|
|
239
|
+
skills
|
|
240
|
+
.command('list')
|
|
241
|
+
.description('스킬 목록 조회 (name·description·scope 인덱스) — 기본은 글로벌+프로젝트')
|
|
242
|
+
.option('--global', '글로벌(팀 공유) 스킬만. 생략 시 글로벌+프로젝트 스킬을 함께 반환(각 항목의 scope 로 구분)')
|
|
243
|
+
.action(async (options) => {
|
|
244
|
+
const globalOpts = program.opts();
|
|
245
|
+
const scopes = scopesToList(options);
|
|
246
|
+
const client = (0, client_1.createClient)({ projectId: globalOpts.project });
|
|
247
|
+
// 스코프별로 독립 조회해 합친다 — 한쪽(예: 프로젝트 컨텍스트 미해석)이
|
|
248
|
+
// 실패해도 다른 쪽 결과는 보존한다(인터셉터가 exitCode 로 실패를 알린다).
|
|
249
|
+
const merged = [];
|
|
250
|
+
for (const scope of scopes) {
|
|
251
|
+
try {
|
|
252
|
+
const { data } = await client.get(skillBasePath(scope));
|
|
253
|
+
if (Array.isArray(data))
|
|
254
|
+
merged.push(...data);
|
|
255
|
+
}
|
|
256
|
+
catch (error) {
|
|
257
|
+
// Error already handled by client interceptor (exitCode/stderr).
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
(0, output_1.formatOutput)(merged, globalOpts);
|
|
261
|
+
});
|
|
262
|
+
// ch skills get <name> [--file <path>] --global|--project
|
|
263
|
+
skills
|
|
264
|
+
.command('get <name>')
|
|
265
|
+
.description('스킬 단건 조회 — SKILL.md 본문 + 파일 매니페스트, --file 로 개별 파일만')
|
|
266
|
+
.option('--global', '글로벌(팀 공유) 스킬. 생략 시 프로젝트 스킬(대상 프로젝트는 --project <id>/.ch-project/config)')
|
|
267
|
+
.option('--file <path>', '지목한 개별 파일만 반환(스킬 폴더 기준 상대경로). 기본은 파일 원본을 stdout 으로, --json 이면 {scope,name,path,mime,content} JSON')
|
|
268
|
+
.action(async (name, options) => {
|
|
269
|
+
const globalOpts = program.opts();
|
|
270
|
+
const scope = resolveScope(options);
|
|
271
|
+
try {
|
|
272
|
+
const client = (0, client_1.createClient)({ projectId: globalOpts.project });
|
|
273
|
+
// 서버 엔드포인트는 문서 id 를 받으므로 name→id 를 목록에서 해석한다.
|
|
274
|
+
const { data: list } = await client.get(skillBasePath(scope));
|
|
275
|
+
const id = findSkillIdByName(Array.isArray(list) ? list : [], name);
|
|
276
|
+
if (!id) {
|
|
277
|
+
(0, output_1.failInput)(`스킬을 찾을 수 없습니다: "${name}" (${scope}). 목록은 ch skills list 로 확인하세요.`);
|
|
278
|
+
return;
|
|
279
|
+
}
|
|
280
|
+
if (options.file) {
|
|
281
|
+
// 개별 파일 — 서버가 원본 바이트를 스트리밍한다.
|
|
282
|
+
const res = await client.get(`${skillBasePath(scope)}/${id}/file`, {
|
|
283
|
+
params: { path: options.file },
|
|
284
|
+
responseType: 'arraybuffer',
|
|
285
|
+
});
|
|
286
|
+
const buffer = Buffer.from(res.data);
|
|
287
|
+
if ((0, output_1.isMachineMode)()) {
|
|
288
|
+
// 기계 모드: stdout 은 순수 JSON 하나만(1.x 출력 계약).
|
|
289
|
+
const contentType = res.headers['content-type'];
|
|
290
|
+
const mime = extractMime(typeof contentType === 'string' ? contentType : undefined);
|
|
291
|
+
(0, output_1.formatOutput)({
|
|
292
|
+
scope,
|
|
293
|
+
name,
|
|
294
|
+
path: options.file,
|
|
295
|
+
mime,
|
|
296
|
+
content: buffer.toString('utf8'),
|
|
297
|
+
}, globalOpts);
|
|
298
|
+
}
|
|
299
|
+
else {
|
|
300
|
+
// 기본: 파일 원본을 그대로 stdout 으로(에이전트가 바로 읽어 소비).
|
|
301
|
+
process.stdout.write(buffer);
|
|
302
|
+
}
|
|
303
|
+
return;
|
|
304
|
+
}
|
|
305
|
+
// 단건 — SKILL.md 본문 + files 매니페스트.
|
|
306
|
+
const { data } = await client.get(`${skillBasePath(scope)}/${id}`);
|
|
307
|
+
(0, output_1.formatOutput)(data, globalOpts);
|
|
308
|
+
}
|
|
309
|
+
catch (error) {
|
|
310
|
+
// Error already handled by client interceptor
|
|
311
|
+
}
|
|
312
|
+
});
|
|
313
|
+
// ch skills register <dir> --global|--project
|
|
314
|
+
skills
|
|
315
|
+
.command('register <dir>')
|
|
316
|
+
.description('로컬 폴더를 새 스킬로 등록 (신규 전용) — 폴더구조 보존 업로드')
|
|
317
|
+
.option('--global', '글로벌(팀 공유) 스킬로 등록 — systemAdmin. 생략 시 프로젝트 스킬(admin·developer, 대상 프로젝트는 --project <id>/.ch-project/config)')
|
|
318
|
+
.action(async (dir, options) => {
|
|
319
|
+
const globalOpts = program.opts();
|
|
320
|
+
const scope = resolveScope(options);
|
|
321
|
+
let prepared;
|
|
322
|
+
try {
|
|
323
|
+
prepared = prepareSkillUpload(dir);
|
|
324
|
+
}
|
|
325
|
+
catch (e) {
|
|
326
|
+
(0, output_1.failInput)(e?.message ?? String(e));
|
|
327
|
+
return;
|
|
328
|
+
}
|
|
329
|
+
const { uploads, frontmatter } = prepared;
|
|
330
|
+
if (globalOpts.dryRun) {
|
|
331
|
+
(0, output_1.printInfo)(`[DRY-RUN] 스킬 "${frontmatter.name}"(${scope}) 등록 요청 — 파일 ${uploads.length}개`);
|
|
332
|
+
return;
|
|
333
|
+
}
|
|
334
|
+
try {
|
|
335
|
+
const form = buildUploadForm(uploads);
|
|
336
|
+
const client = (0, client_1.createClient)({ projectId: globalOpts.project });
|
|
337
|
+
const { data } = await client.post(skillBasePath(scope), form, {
|
|
338
|
+
headers: { ...form.getHeaders() },
|
|
339
|
+
});
|
|
340
|
+
(0, output_1.formatOutput)(data, globalOpts);
|
|
341
|
+
(0, output_1.printSuccess)(`스킬 "${frontmatter.name}"이(가) 등록되었습니다 (${scope}, 파일 ${uploads.length}개).`);
|
|
342
|
+
}
|
|
343
|
+
catch (error) {
|
|
344
|
+
// Error already handled (409=동일 name 중복 등)
|
|
345
|
+
}
|
|
346
|
+
});
|
|
347
|
+
// ch skills update <name> <dir> --global|--project
|
|
348
|
+
skills
|
|
349
|
+
.command('update <name> <dir>')
|
|
350
|
+
.description('기존 스킬의 파일을 새 폴더로 통째 교체')
|
|
351
|
+
.option('--global', '글로벌(팀 공유) 스킬. 생략 시 프로젝트 스킬(대상 프로젝트는 --project <id>/.ch-project/config)')
|
|
352
|
+
.action(async (name, dir, options) => {
|
|
353
|
+
const globalOpts = program.opts();
|
|
354
|
+
const scope = resolveScope(options);
|
|
355
|
+
let prepared;
|
|
356
|
+
try {
|
|
357
|
+
prepared = prepareSkillUpload(dir);
|
|
358
|
+
}
|
|
359
|
+
catch (e) {
|
|
360
|
+
(0, output_1.failInput)(e?.message ?? String(e));
|
|
361
|
+
return;
|
|
362
|
+
}
|
|
363
|
+
const { uploads } = prepared;
|
|
364
|
+
if (globalOpts.dryRun) {
|
|
365
|
+
(0, output_1.printInfo)(`[DRY-RUN] 스킬 "${name}"(${scope}) 파일 교체 요청 — 파일 ${uploads.length}개`);
|
|
366
|
+
return;
|
|
367
|
+
}
|
|
368
|
+
try {
|
|
369
|
+
const client = (0, client_1.createClient)({ projectId: globalOpts.project });
|
|
370
|
+
// 서버 PATCH 는 문서 id 를 받으므로 name→id 를 목록에서 해석한다.
|
|
371
|
+
const { data: list } = await client.get(skillBasePath(scope));
|
|
372
|
+
const id = findSkillIdByName(Array.isArray(list) ? list : [], name);
|
|
373
|
+
if (!id) {
|
|
374
|
+
(0, output_1.failInput)(`수정할 스킬을 찾을 수 없습니다: "${name}" (${scope}). 신규 등록은 register 를 사용하세요.`);
|
|
375
|
+
return;
|
|
376
|
+
}
|
|
377
|
+
const form = buildUploadForm(uploads);
|
|
378
|
+
const { data } = await client.patch(`${skillBasePath(scope)}/${id}`, form, { headers: { ...form.getHeaders() } });
|
|
379
|
+
(0, output_1.formatOutput)(data, globalOpts);
|
|
380
|
+
(0, output_1.printSuccess)(`스킬 "${name}"이(가) 수정되었습니다 (${scope}, 파일 ${uploads.length}개).`);
|
|
381
|
+
}
|
|
382
|
+
catch (error) {
|
|
383
|
+
// Error already handled
|
|
384
|
+
}
|
|
385
|
+
});
|
|
386
|
+
}
|
|
387
|
+
//# sourceMappingURL=skills.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skills.js","sourceRoot":"","sources":["../../src/commands/skills.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmDA,oCAEC;AAGD,sCAEC;AAYD,oCAEC;AAMD,kCAGC;AAQD,8CAqBC;AAMD,0CAQC;AAoBD,sDA+BC;AAGD,8CAKC;AASD,gDAmCC;AAqBD,sDAyMC;AAhcD,uCAAyB;AACzB,2CAA6B;AAC7B,0DAAiC;AACjC,sCAAyC;AACzC,sCAMmB;AAyBnB,iDAAiD;AACpC,QAAA,uBAAuB,GAAG,UAAU,CAAC;AAElD,kEAAkE;AAElE;;;;;;;;;GASG;AACH,SAAgB,YAAY,CAAC,IAA0B;IACrD,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;AAC5C,CAAC;AAED,yBAAyB;AACzB,SAAgB,aAAa,CAAC,KAAiB;IAC7C,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,iBAAiB,CAAC;AACnE,CAAC;AAED;;;;;;;;;GASG;AACH,SAAgB,YAAY,CAAC,IAA0B;IACrD,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;AAC1D,CAAC;AAED;;;GAGG;AACH,SAAgB,WAAW,CAAC,WAA+B;IACzD,MAAM,IAAI,GAAG,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IACtD,OAAO,IAAI,IAAI,0BAA0B,CAAC;AAC5C,CAAC;AAED;;;;;GAKG;AACH,SAAgB,iBAAiB,CAAC,GAAW;IAC3C,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC/B,MAAM,GAAG,GAAkB,EAAE,CAAC;IAE9B,MAAM,IAAI,GAAG,CAAC,OAAe,EAAQ,EAAE;QACrC,MAAM,OAAO,GAAG,EAAE,CAAC,WAAW,CAAC,OAAO,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QACjE,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;YAC3C,IAAI,KAAK,CAAC,cAAc,EAAE;gBAAE,SAAS;YACrC,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;gBACxB,IAAI,CAAC,GAAG,CAAC,CAAC;YACZ,CAAC;iBAAM,IAAI,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;gBAC1B,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAC/D,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC;YAC3C,CAAC;QACH,CAAC;IACH,CAAC,CAAC;IAEF,IAAI,CAAC,IAAI,CAAC,CAAC;IACX,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;IACvD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;GAGG;AACH,SAAgB,eAAe,CAAC,QAAkB;IAChD,OAAO,QAAQ;SACZ,MAAM,CACL,CAAC,CAAC,EAAE,EAAE,CACJ,CAAC,KAAK,+BAAuB;QAC7B,CAAC,CAAC,QAAQ,CAAC,IAAI,+BAAuB,EAAE,CAAC,CAC5C;SACA,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AAClE,CAAC;AAED,kCAAkC;AAClC,SAAS,WAAW,CAAC,KAAa;IAChC,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAC7B,IAAI,OAAO,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;QACxB,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QACzB,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACzC,IAAI,CAAC,KAAK,KAAK,GAAG,IAAI,KAAK,KAAK,GAAG,CAAC,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YACvD,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;GAIG;AACH,SAAgB,qBAAqB,CAAC,QAAgB;IACpD,MAAM,KAAK,GAAqB,EAAE,IAAI,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC;IAC9D,IAAI,CAAC,QAAQ;QAAE,OAAO,KAAK,CAAC;IAE5B,MAAM,IAAI,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;IAC9E,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAElC,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,OAAO,KAAK,GAAG,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE;QAAE,KAAK,EAAE,CAAC;IACnE,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,KAAK,KAAK;QAAE,OAAO,KAAK,CAAC;IAEzE,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC;IACb,KAAK,IAAI,CAAC,GAAG,KAAK,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC9C,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,KAAK,EAAE,CAAC;YAC9B,GAAG,GAAG,CAAC,CAAC;YACR,MAAM;QACR,CAAC;IACH,CAAC;IACD,IAAI,GAAG,KAAK,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IAE7B,MAAM,MAAM,GAAqB,EAAE,IAAI,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC;IAC/D,KAAK,IAAI,CAAC,GAAG,KAAK,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACtB,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAChC,IAAI,KAAK,KAAK,CAAC,CAAC;YAAE,SAAS;QAC3B,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;QACxC,MAAM,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;QACjD,IAAI,GAAG,KAAK,MAAM;YAAE,MAAM,CAAC,IAAI,GAAG,KAAK,CAAC;aACnC,IAAI,GAAG,KAAK,aAAa;YAAE,MAAM,CAAC,WAAW,GAAG,KAAK,CAAC;IAC7D,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,wDAAwD;AACxD,SAAgB,iBAAiB,CAC/B,IAAuB,EACvB,IAAY;IAEZ,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,EAAE,CAAC;AAC/C,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,kBAAkB,CAAC,GAAW;IAI5C,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACnC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CAAC,kBAAkB,QAAQ,EAAE,CAAC,CAAC;IAChD,CAAC;IACD,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC;QACzC,MAAM,IAAI,KAAK,CAAC,oBAAoB,QAAQ,EAAE,CAAC,CAAC;IAClD,CAAC;IAED,MAAM,OAAO,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IAC5C,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CAAC,2BAA2B,QAAQ,EAAE,CAAC,CAAC;IACzD,CAAC;IAED,MAAM,UAAU,GAAG,eAAe,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;IAClE,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CACb,8BAA8B,+BAAuB,aAAa,QAAQ,EAAE,CAC7E,CAAC;IACJ,CAAC;IAED,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,UAAU,CAAE,CAAC;IAC/D,MAAM,WAAW,GAAG,qBAAqB,CACvC,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,CAC1C,CAAC;IACF,IAAI,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC;QAClD,MAAM,IAAI,KAAK,CACb,GAAG,+BAAuB,+CAA+C,UAAU,EAAE,CACtF,CAAC;IACJ,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC;AAClC,CAAC;AAED;;;;GAIG;AACH,SAAS,eAAe,CAAC,OAAsB;IAC7C,MAAM,IAAI,GAAG,IAAI,mBAAQ,EAAE,CAAC;IAC5B,IAAI,CAAC,MAAM,CACT,OAAO,EACP,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAC9C,CAAC;IACF,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACxB,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;IACvD,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,yEAAyE;AAEzE,SAAgB,qBAAqB,CAAC,OAAgB;IACpD,MAAM,MAAM,GAAG,OAAO;SACnB,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,2CAA2C,CAAC,CAAC;IAE5D,iBAAiB;IACjB,MAAM;SACH,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CACV,sDAAsD,CACvD;SACA,MAAM,CACL,UAAU,EACV,0DAA0D,CAC3D;SACA,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;QACxB,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;QAClC,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;QACrC,MAAM,MAAM,GAAG,IAAA,qBAAY,EAAC,EAAE,SAAS,EAAE,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC;QAE/D,2CAA2C;QAC3C,gDAAgD;QAChD,MAAM,MAAM,GAAc,EAAE,CAAC;QAC7B,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,IAAI,CAAC;gBACH,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;gBACxD,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;oBAAE,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;YAChD,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,iEAAiE;YACnE,CAAC;QACH,CAAC;QACD,IAAA,qBAAY,EAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;IAEL,0DAA0D;IAC1D,MAAM;SACH,OAAO,CAAC,YAAY,CAAC;SACrB,WAAW,CACV,oDAAoD,CACrD;SACA,MAAM,CACL,UAAU,EACV,wEAAwE,CACzE;SACA,MAAM,CACL,eAAe,EACf,mGAAmG,CACpG;SACA,MAAM,CAAC,KAAK,EAAE,IAAY,EAAE,OAAO,EAAE,EAAE;QACtC,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;QAClC,MAAM,KAAK,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;QACpC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAA,qBAAY,EAAC,EAAE,SAAS,EAAE,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC;YAE/D,8CAA8C;YAC9C,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;YAC9D,MAAM,EAAE,GAAG,iBAAiB,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;YACpE,IAAI,CAAC,EAAE,EAAE,CAAC;gBACR,IAAA,kBAAS,EACP,mBAAmB,IAAI,MAAM,KAAK,gCAAgC,CACnE,CAAC;gBACF,OAAO;YACT,CAAC;YAED,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;gBACjB,8BAA8B;gBAC9B,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,GAAG,aAAa,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE;oBACjE,MAAM,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE;oBAC9B,YAAY,EAAE,aAAa;iBAC5B,CAAC,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBACrC,IAAI,IAAA,sBAAa,GAAE,EAAE,CAAC;oBACpB,0CAA0C;oBAC1C,MAAM,WAAW,GAAG,GAAG,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;oBAChD,MAAM,IAAI,GAAG,WAAW,CACtB,OAAO,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAC1D,CAAC;oBACF,IAAA,qBAAY,EACV;wBACE,KAAK;wBACL,IAAI;wBACJ,IAAI,EAAE,OAAO,CAAC,IAAI;wBAClB,IAAI;wBACJ,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;qBACjC,EACD,UAAU,CACX,CAAC;gBACJ,CAAC;qBAAM,CAAC;oBACN,4CAA4C;oBAC5C,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;gBAC/B,CAAC;gBACD,OAAO;YACT,CAAC;YAED,kCAAkC;YAClC,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,GAAG,aAAa,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YACnE,IAAA,qBAAY,EAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QACjC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,8CAA8C;QAChD,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,8CAA8C;IAC9C,MAAM;SACH,OAAO,CAAC,gBAAgB,CAAC;SACzB,WAAW,CAAC,uCAAuC,CAAC;SACpD,MAAM,CACL,UAAU,EACV,2GAA2G,CAC5G;SACA,MAAM,CAAC,KAAK,EAAE,GAAW,EAAE,OAAO,EAAE,EAAE;QACrC,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;QAClC,MAAM,KAAK,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;QACpC,IAAI,QAA+C,CAAC;QACpD,IAAI,CAAC;YACH,QAAQ,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;QACrC,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YAChB,IAAA,kBAAS,EAAC,CAAC,EAAE,OAAO,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YACnC,OAAO;QACT,CAAC;QAED,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,QAAQ,CAAC;QAC1C,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;YACtB,IAAA,kBAAS,EACP,iBAAiB,WAAW,CAAC,IAAI,KAAK,KAAK,gBAAgB,OAAO,CAAC,MAAM,GAAG,CAC7E,CAAC;YACF,OAAO;QACT,CAAC;QAED,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;YACtC,MAAM,MAAM,GAAG,IAAA,qBAAY,EAAC,EAAE,SAAS,EAAE,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC;YAC/D,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE;gBAC7D,OAAO,EAAE,EAAE,GAAG,IAAI,CAAC,UAAU,EAAE,EAAE;aAClC,CAAC,CAAC;YACH,IAAA,qBAAY,EAAC,IAAI,EAAE,UAAU,CAAC,CAAC;YAC/B,IAAA,qBAAY,EACV,OAAO,WAAW,CAAC,IAAI,kBAAkB,KAAK,QAAQ,OAAO,CAAC,MAAM,KAAK,CAC1E,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,2CAA2C;QAC7C,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,mDAAmD;IACnD,MAAM;SACH,OAAO,CAAC,qBAAqB,CAAC;SAC9B,WAAW,CAAC,wBAAwB,CAAC;SACrC,MAAM,CACL,UAAU,EACV,wEAAwE,CACzE;SACA,MAAM,CAAC,KAAK,EAAE,IAAY,EAAE,GAAW,EAAE,OAAO,EAAE,EAAE;QACnD,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;QAClC,MAAM,KAAK,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;QACpC,IAAI,QAA+C,CAAC;QACpD,IAAI,CAAC;YACH,QAAQ,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;QACrC,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YAChB,IAAA,kBAAS,EAAC,CAAC,EAAE,OAAO,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YACnC,OAAO;QACT,CAAC;QAED,MAAM,EAAE,OAAO,EAAE,GAAG,QAAQ,CAAC;QAC7B,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;YACtB,IAAA,kBAAS,EACP,iBAAiB,IAAI,KAAK,KAAK,mBAAmB,OAAO,CAAC,MAAM,GAAG,CACpE,CAAC;YACF,OAAO;QACT,CAAC;QAED,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAA,qBAAY,EAAC,EAAE,SAAS,EAAE,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC;YAE/D,+CAA+C;YAC/C,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;YAC9D,MAAM,EAAE,GAAG,iBAAiB,CAC1B,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAC/B,IAAI,CACL,CAAC;YACF,IAAI,CAAC,EAAE,EAAE,CAAC;gBACR,IAAA,kBAAS,EACP,uBAAuB,IAAI,MAAM,KAAK,6BAA6B,CACpE,CAAC;gBACF,OAAO;YACT,CAAC;YAED,MAAM,IAAI,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;YACtC,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,KAAK,CACjC,GAAG,aAAa,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,EAC/B,IAAI,EACJ,EAAE,OAAO,EAAE,EAAE,GAAG,IAAI,CAAC,UAAU,EAAE,EAAE,EAAE,CACtC,CAAC;YACF,IAAA,qBAAY,EAAC,IAAI,EAAE,UAAU,CAAC,CAAC;YAC/B,IAAA,qBAAY,EACV,OAAO,IAAI,kBAAkB,KAAK,QAAQ,OAAO,CAAC,MAAM,KAAK,CAC9D,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,wBAAwB;QAC1B,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}
|
package/dist/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,QAAQ;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,OAAO,GAAG,MAAM,GAAG,KAAK,CAAC;CACzC;AAED,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,YAAY,GAAG,OAAO,GAAG,QAAQ,CAAC;CAC3C;AAMD,wBAAgB,UAAU,IAAI,QAAQ,GAAG,IAAI,CAU5C;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,cAAc,GAAG,IAAI,CAkBxD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI,CAgB9E;AAED,gFAAgF;AAChF,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,cAAc,CAAC,QAAQ,CAAC,GAAG,MAAM,CAW9E;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,QAAQ;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,OAAO,GAAG,MAAM,GAAG,KAAK,CAAC;CACzC;AAED,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,YAAY,GAAG,OAAO,GAAG,QAAQ,CAAC;CAC3C;AAMD,wBAAgB,UAAU,IAAI,QAAQ,GAAG,IAAI,CAU5C;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,cAAc,GAAG,IAAI,CAkBxD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI,CAgB9E;AAED,gFAAgF;AAChF,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,cAAc,CAAC,QAAQ,CAAC,GAAG,MAAM,CAW9E;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAwB/D;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,QAAQ,GAAG,IAAI,CAKjD;AAED,wBAAgB,WAAW,IAAI,IAAI,CAIlC;AAED,wBAAgB,aAAa,IAAI,MAAM,CAEtC"}
|
package/dist/config.js
CHANGED
|
@@ -138,6 +138,12 @@ function pathRequiresProjectContext(url) {
|
|
|
138
138
|
if (normalized === 'projects') {
|
|
139
139
|
return false;
|
|
140
140
|
}
|
|
141
|
+
// Account-level: global skills (팀 공유, systemAdmin). No X-Project-Id needed.
|
|
142
|
+
// Project skills (`/skills/project*`) ARE project-scoped and must still
|
|
143
|
+
// require context.
|
|
144
|
+
if (normalized === 'skills/global' || normalized.startsWith('skills/global/')) {
|
|
145
|
+
return false;
|
|
146
|
+
}
|
|
141
147
|
return true;
|
|
142
148
|
}
|
|
143
149
|
function saveConfig(config) {
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0BA,gCAUC;AAKD,4CAkBC;AAKD,8CAgBC;AAGD,sDAWC;AAcD,
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -46,6 +46,7 @@ const requests_1 = require("./commands/requests");
|
|
|
46
46
|
const qna_1 = require("./commands/qna");
|
|
47
47
|
const sqa_1 = require("./commands/sqa");
|
|
48
48
|
const archives_1 = require("./commands/archives");
|
|
49
|
+
const skills_1 = require("./commands/skills");
|
|
49
50
|
const members_1 = require("./commands/members");
|
|
50
51
|
const dev_status_1 = require("./commands/dev-status");
|
|
51
52
|
const prd_1 = require("./commands/prd");
|
|
@@ -104,6 +105,7 @@ program.hook('preAction', (thisCommand) => {
|
|
|
104
105
|
(0, qna_1.registerQnaCommand)(program);
|
|
105
106
|
(0, sqa_1.registerSqaCommand)(program);
|
|
106
107
|
(0, archives_1.registerArchivesCommand)(program);
|
|
108
|
+
(0, skills_1.registerSkillsCommand)(program);
|
|
107
109
|
(0, members_1.registerMembersCommand)(program);
|
|
108
110
|
(0, dev_status_1.registerDevStatusCommand)(program);
|
|
109
111
|
(0, prd_1.registerPrdCommand)(program);
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,yCAAoC;AACpC,2CAA6B;AAC7B,uCAAyB;AAEzB,0CAAsD;AACtD,0CAAsD;AACtD,kDAA8D;AAC9D,4CAAwD;AACxD,gDAA4D;AAC5D,kDAA8D;AAC9D,wCAAoD;AACpD,wCAAoD;AACpD,kDAA8D;AAC9D,8CAA0D;AAC1D,gDAA4D;AAC5D,sDAAiE;AACjE,wCAAoD;AACpD,oDAA+D;AAC/D,oDAA+D;AAC/D,gDAA4D;AAC5D,8CAA0D;AAC1D,gDAA4D;AAE5D,4DAAwE;AACxE,oDAAgE;AAChE,8CAA0D;AAC1D,wDAAmE;AACnE,4CAAwD;AAExD,qCAA+D;AAE/D,iCAAiC;AACjC,SAAS,UAAU;IACjB,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC;QAC3D,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;QAC1D,OAAO,GAAG,CAAC,OAAO,IAAI,OAAO,CAAC;IAChC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,OAAO,CAAC;IACjB,CAAC;AACH,CAAC;AAED,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,IAAI,CAAC;KACV,WAAW,CAAC,oCAAoC,CAAC;KACjD,OAAO,CAAC,UAAU,EAAE,EAAE,eAAe,EAAE,OAAO,CAAC;KAC/C,MAAM,CACL,QAAQ,EACR,4DAA4D,CAC7D;KACA,MAAM,CAAC,SAAS,EAAE,mBAAmB,CAAC;KACtC,MAAM,CAAC,OAAO,EAAE,aAAa,CAAC;KAC9B,MAAM,CAAC,uBAAuB,EAAE,eAAe,CAAC;KAChD,MAAM,CAAC,WAAW,EAAE,UAAU,CAAC;KAC/B,MAAM,CAAC,SAAS,EAAE,2CAA2C,CAAC;KAC9D,MAAM,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;AAEtC,2EAA2E;AAC3E,0EAA0E;AAC1E,6EAA6E;AAC7E,mEAAmE;AACnE,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,WAAW,EAAE,EAAE;IACxC,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC;IAChC,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QACf,IAAA,4BAAmB,GAAE,CAAC;IACxB,CAAC;IACD,IAAA,uBAAc,EAAC,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC9C,CAAC,CAAC,CAAC;AAEH,+BAA+B;AAC/B,IAAA,0BAAmB,EAAC,OAAO,CAAC,CAAC;AAC7B,IAAA,0BAAmB,EAAC,OAAO,CAAC,CAAC;AAC7B,IAAA,kCAAuB,EAAC,OAAO,CAAC,CAAC;AACjC,IAAA,4BAAoB,EAAC,OAAO,CAAC,CAAC;AAC9B,IAAA,gCAAsB,EAAC,OAAO,CAAC,CAAC;AAChC,IAAA,kCAAuB,EAAC,OAAO,CAAC,CAAC;AACjC,IAAA,wBAAkB,EAAC,OAAO,CAAC,CAAC;AAC5B,IAAA,wBAAkB,EAAC,OAAO,CAAC,CAAC;AAC5B,IAAA,kCAAuB,EAAC,OAAO,CAAC,CAAC;AACjC,IAAA,8BAAqB,EAAC,OAAO,CAAC,CAAC;AAC/B,IAAA,gCAAsB,EAAC,OAAO,CAAC,CAAC;AAChC,IAAA,qCAAwB,EAAC,OAAO,CAAC,CAAC;AAClC,IAAA,wBAAkB,EAAC,OAAO,CAAC,CAAC;AAC5B,IAAA,mCAAuB,EAAC,OAAO,CAAC,CAAC;AACjC,IAAA,mCAAuB,EAAC,OAAO,CAAC,CAAC;AACjC,IAAA,gCAAsB,EAAC,OAAO,CAAC,CAAC;AAChC,IAAA,8BAAqB,EAAC,OAAO,CAAC,CAAC;AAC/B,IAAA,gCAAsB,EAAC,OAAO,CAAC,CAAC;AAEhC,IAAA,4CAA4B,EAAC,OAAO,CAAC,CAAC;AACtC,IAAA,oCAAwB,EAAC,OAAO,CAAC,CAAC;AAClC,IAAA,8BAAqB,EAAC,OAAO,CAAC,CAAC;AAC/B,IAAA,uCAAyB,EAAC,OAAO,CAAC,CAAC;AACnC,IAAA,4BAAoB,EAAC,OAAO,CAAC,CAAC;AAE9B,oBAAoB;AACpB,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IAC7C,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACnB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
name: 2t-decencia-channel-change-manager
|
|
3
3
|
description: 기존 소통채널 프로젝트의 기능 추가/수정을 사용자와 대화로 명확화 → 전파 스킬로 연관 PRD/spec/DB/SQA 일괄 갱신 → 변경으로 생긴 새 할일을 GitHub 이슈로 발행하는 오케스트레이터 스킬. (1)대화로 변경 내용 확정 → (2)[게이트] 영향 범위 확인 후 전파 적용 → (3)[게이트] 할일 목록 확인 후 이슈 발행. "이 기능 바꿀래"·"기획 수정"·"이거 추가해줘(기존 프로젝트)" 류 요청 시.
|
|
4
4
|
allowed-tools: Bash(ch:*) Bash(git:*) Bash(gh:*) Read Write
|
|
5
|
-
version: 1.
|
|
5
|
+
version: 1.28.0
|
|
6
6
|
---
|
|
7
7
|
|
|
8
8
|
<!-- ch-version-gate -->
|
|
@@ -10,7 +10,7 @@ description: |
|
|
|
10
10
|
(4) ch screens 명령(list/get/create/update/delete/migrate)으로 화면을 다루거나 레거시 프로젝트를 화면 모드로 이관할 때,
|
|
11
11
|
(5) spec의 화면 연결을 CLI로 걸거나 풀 때 (`ch specs screen-refs`),
|
|
12
12
|
(6) Spec ID를 JIRA 스타일(`LOGIN-001`)로 직접 지정할 때 (`ch specs create --id`).
|
|
13
|
-
version: 1.
|
|
13
|
+
version: 1.28.0
|
|
14
14
|
---
|
|
15
15
|
|
|
16
16
|
<!-- ch-version-gate -->
|
|
@@ -359,7 +359,7 @@ ch requests create --label bug \
|
|
|
359
359
|
--source "카카오톡 문의" \
|
|
360
360
|
--dev-note "재현: 크롬 로그인 직후" \
|
|
361
361
|
--attach ./shot1.png,./clip.mp4
|
|
362
|
-
ch requests create --label planChange --file ./symptom.md --spec-refs LOGIN-001
|
|
362
|
+
ch requests create --label planChange --file ./symptom.md --spec-refs LOGIN-001 --related-specs LOGIN-002,PAY-003
|
|
363
363
|
|
|
364
364
|
ch requests update <requestId> --dev-note "..." # 진행상황 제외 수정 (PATCH — 준 필드만)
|
|
365
365
|
ch requests update <requestId> --resolution "PR #166 로 해소 — null 가드 추가" # 처리결과 기록
|
|
@@ -375,6 +375,7 @@ ch requests delete <requestId> # admin — 첨부·Sprint 연
|
|
|
375
375
|
- `symptom`은 **원문 그대로** 저장한다. 재현 조건·기술 컨텍스트는 `symptom`이 아니라 `--dev-note`에 적어 원문 변질을 막는다.
|
|
376
376
|
- **출처**(`--source`, 한 줄, 선택)는 요청이 들어온 경로/맥락을 적는 원문 영역 메타다. 예: 카카오톡 문의, QA 회의, 전화. `create`·`update` 둘 다 받고 미입력이어도 카드 생성은 정상이다.
|
|
377
377
|
- **처리결과**(`--resolution`, 마크다운, 선택)는 이 요청을 어떻게 처리했는지 적는 개발 영역 필드다. 원문(`symptom`)과 분리되며 완료 처리할 때 해소 내역(PR 링크·한 줄 요약)을 남긴다. `create`·`update` 둘 다 받고 CRLF는 자동 정제된다. PDF에는 실리지 않는다(번호·증상·진행상황 3컬럼).
|
|
378
|
+
- **spec 링크는 두 종류**다. `--spec-refs`는 이 카드를 **해소한** spec(역방향 링크), `--related-specs`는 참고·맥락용 **연관** spec이다. 둘은 서로 독립이고 쉼표로 여러 개를 준다. `create`·`update` 둘 다 받는다.
|
|
378
379
|
|
|
379
380
|
### Sprint 연결 (`ch sprints ... requests`)
|
|
380
381
|
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
name: 2t-decencia-channel-github-issue
|
|
3
3
|
description: gh CLI로 현재 repo에 GitHub 이슈를 작성한다. 이슈 1개=유형 1개(feat/fix/bug), 표준 본문 양식(작업내용·관련 명세 백링크·완료조건)으로 발행. "이슈 만들어줘"/"깃헙 이슈로 등록해줘" 요청 시, 또는 소통채널 기획·명세 작업 후 처리할 일들을 GitHub 이슈로 옮길 때 사용. 멱등성/중복방지·확인단계는 다루지 않음(요청대로 바로 생성).
|
|
4
4
|
allowed-tools: Bash(gh:*) Bash(git:*) Read Write
|
|
5
|
-
version: 1.
|
|
5
|
+
version: 1.28.0
|
|
6
6
|
---
|
|
7
7
|
|
|
8
8
|
<!-- ch-version-gate -->
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
name: 2t-decencia-channel-orchestrator
|
|
3
3
|
description: 소통채널 작업의 단일 진입점(디스패처). 사용자 요청을 듣고 7종(bootstrap·terraformer·change-manager·github-issue·issue-coder·pr-merger·sprint-runner) 중 적절한 곳으로 라우팅하고, 필요하면 여러 단계를 순차 오케스트레이션한다. 대화형 스킬은 메인 세션에서 Skill로, 자율 에이전트는 Agent로 위임. "소통채널 작업 해줘"·"이거 어떻게 처리하지?"처럼 무엇부터 할지 모를 때, 또는 신규기획/코드편입/기획변경/이슈/구현/머지/스프린트실행 어디로든 시작할 때.
|
|
4
4
|
allowed-tools: Skill Agent Read Bash(ch:*) Bash(gh:*) Bash(git:*)
|
|
5
|
-
version: 1.
|
|
5
|
+
version: 1.28.0
|
|
6
6
|
---
|
|
7
7
|
|
|
8
8
|
<!-- ch-version-gate -->
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
name: 2t-decencia-channel-project-bootstrap
|
|
3
3
|
description: 신규 기획을 사용자와 대화하며 step-by-step으로 소통채널 프로젝트로 만드는 오케스트레이터 스킬. (1)대화로 PRD 완성 → (2)기능명세(spec) 내용 확정 → (3)DB 스키마 → (4)spec 업로드 → (5)화면 구성·연결 → (6)SQA 시트. 각 단계 사용자 승인 게이트, 작성 디테일은 기존 2t-decencia-channel-*-v2 스킬을 적극 재사용. "새 기획 만들어줘"·"프로젝트 처음부터 세팅" 류 요청 시.
|
|
4
4
|
allowed-tools: Bash(ch:*) Bash(git:*) Read Write
|
|
5
|
-
version: 1.
|
|
5
|
+
version: 1.28.0
|
|
6
6
|
---
|
|
7
7
|
|
|
8
8
|
<!-- ch-version-gate -->
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
name: 2t-decencia-channel-sprint-runner
|
|
3
3
|
description: 특정 Sprint를 끝까지 실행(run)하는 오케스트레이터 스킬. Sprint의 spec을 시드로 이슈 목록을 분해·발행(github-issue)하고, GitHub milestone에 묶인 이슈를 상태별로 분류해 issue-coder(병렬)·pr-merger(직렬)로 전진시킨 뒤, 사람확인이 필요한 곳에서 멈춘다. 사람이 확인·체크 후 재호출하면 멱등하게 이어간다(반복 루프). "스프린트 돌려줘"·"sprint N 실행"·"이 스프린트 개발 진행해줘" 류 요청 시.
|
|
4
4
|
allowed-tools: Skill Agent Read Bash(ch:*) Bash(gh:*) Bash(git:*)
|
|
5
|
-
version: 1.
|
|
5
|
+
version: 1.28.0
|
|
6
6
|
---
|
|
7
7
|
|
|
8
8
|
<!-- ch-version-gate -->
|