@uzysjung/agent-harness 26.170.0 → 26.172.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/README.ko.md +5 -3
- package/README.md +5 -3
- package/dist/{chunk-MGFWOWF4.js → chunk-T2HBTG32.js} +30 -54
- package/dist/chunk-T2HBTG32.js.map +1 -0
- package/dist/index.js +417 -578
- package/dist/index.js.map +1 -1
- package/dist/trust-tier-drift.js +1 -1
- package/package.json +1 -1
- package/templates/CLAUDE.md +3 -1
- package/templates/agents/reviewer.md +10 -62
- package/templates/rules/htmx-fastapi-ui.md +36 -0
- package/templates/rules/htmx-fastify-ui.md +9 -0
- package/templates/rules/ship-checklist.md +2 -2
- package/templates/rules/test-policy.md +7 -4
- package/templates/skills/audit-harness-fit/references/apply.md +6 -1
- package/templates/skills/audit-harness-fit/references/verification.md +5 -0
- package/templates/skills/objective-brief/SKILL.md +3 -1
- package/templates/track-mcp-map.tsv +1 -1
- package/dist/chunk-MGFWOWF4.js.map +0 -1
package/README.ko.md
CHANGED
|
@@ -156,7 +156,7 @@ your-project/
|
|
|
156
156
|
|
|
157
157
|
## 지원하는 스택과 함께 제공하는 스킬
|
|
158
158
|
|
|
159
|
-
트랙은 개발 스택이나 업무 종류별로 묶어 둔 시작 구성이다. 표의 위쪽
|
|
159
|
+
트랙은 개발 스택이나 업무 종류별로 묶어 둔 시작 구성이다. 표의 위쪽 10개가 개발 트랙, 아래쪽 3개가 업무 트랙이다. 트랙을 고르면 아래 외부 스킬과 도구가 미리 체크된다. 미리 체크되는 것은 모두 공식 저장소이거나, 출처와 인기도, 설치 경로를 확인해 고른 저장소다. 내용의 안전성이나 결과물의 품질까지 보증하지는 않는다([SECURITY.md](SECURITY.md)).
|
|
160
160
|
|
|
161
161
|
| 트랙 | 스택 | 미리 체크되는 외부 스킬·도구 |
|
|
162
162
|
|---|---|---|
|
|
@@ -165,7 +165,8 @@ your-project/
|
|
|
165
165
|
| `csr-fastify` | Vite + React + Fastify | `frontend-design`, `react-best-practices`, `shadcn-ui` |
|
|
166
166
|
| `csr-fastapi` | Vite + React + FastAPI | `frontend-design`, `react-best-practices`, `shadcn-ui` |
|
|
167
167
|
| `ssr-nextjs` | Next.js (App Router) | `frontend-design`, `react-best-practices`, `shadcn-ui` |
|
|
168
|
-
| `ssr-htmx` | htmx + FastAPI | `frontend-design` |
|
|
168
|
+
| `ssr-htmx` | htmx + FastAPI (Python) + daisyUI | `frontend-design` |
|
|
169
|
+
| `ssr-htmx-fastify` | htmx + Fastify (Node) + daisyUI | `frontend-design` |
|
|
169
170
|
| `data` | Python 데이터 작업 (DuckDB, PySide6) | `anthropic-data-plugin` |
|
|
170
171
|
| `tooling` | 앱 스택 없는 Bash·Markdown 프로젝트 | 없음 |
|
|
171
172
|
| `full` | 개발 트랙 전부와 문서 작업 | 위 항목 전부 + `anthropic-document-skills` |
|
|
@@ -173,13 +174,14 @@ your-project/
|
|
|
173
174
|
| `project-management` | PM 업무 | 없음 |
|
|
174
175
|
| `growth-marketing` | 그로스·콘텐츠 마케팅 | 없음 (`marketingskills` 선택 가능) |
|
|
175
176
|
|
|
176
|
-
MCP 서버도 함께 들어간다. 모든 트랙에 `context7`(최신 라이브러리 문서)가 들어가고, 웹 트랙(`csr-*`, `ssr-*`, `full`)에는 Google 사용 통계를 끈 `chrome-devtools`가 더해진다. `csr
|
|
177
|
+
MCP 서버도 함께 들어간다. 모든 트랙에 `context7`(최신 라이브러리 문서)가 들어가고, 웹 트랙(`csr-*`, `ssr-*`, `full`)에는 Google 사용 통계를 끈 `chrome-devtools`가 더해진다. `csr-*`·`ssr-htmx`·`ssr-htmx-fastify` 트랙에는 `railway-mcp-server`(Railway 원격 서버 — 처음 쓸 때 로그인한다)가, `csr-supabase`에는 `supabase`(Supabase 원격 서버 — 처음 쓸 때 로그인한다)가 더해진다. `full`은 둘 다 받는다. `ssr-nextjs`에서는 Railway MCP가 기본이 아니고, 직접 고르면 들어간다. Vercel·GitHub 공식 원격 서버(`vercel`, `github-mcp`)는 미리 체크되지 않는다 — `--with`로 더한다. 서버마다 위저드 3단계에 한 줄씩 보이고, 체크를 풀거나 `--without <이름>`(예: `--without context7`)을 주면 `.mcp.json`·Codex·OpenCode 에서 빠진다.
|
|
177
178
|
|
|
178
179
|
미리 체크되지는 않지만 3단계나 `--with <id>`로 더할 수 있는 것도 있다.
|
|
179
180
|
|
|
180
181
|
- 프론트엔드·디자인: `web-design-guidelines`, `taste-skill`, `jakubkrehel-skills`, `preline`, `scroll-world`
|
|
181
182
|
- 배포: `vercel-cli`, `netlify-cli`, `supabase-cli`, `railway-mcp-server`, `vercel`, `railway-skills`
|
|
182
183
|
- 보안 리뷰: `security-guidance`, `claude-security`
|
|
184
|
+
- 구조 기반 코드 검색·린트 규칙: `ast-grep` (ast-grep CLI 별도 설치 필요)
|
|
183
185
|
- 마케팅·재무: `marketingskills`, `finance-skills`
|
|
184
186
|
- 발표·영상: `frontend-slides`, `marp-slide`, `hyperframes`, `remotion`, `gsap-skills` 등
|
|
185
187
|
- 정해진 개발 절차가 필요한 팀: `openspec`, `bmad-method` ([WORKFLOWS.md](docs/WORKFLOWS.md)에서 비교)
|
package/README.md
CHANGED
|
@@ -149,7 +149,7 @@ Plugins are a Claude Code feature, so only Claude Code gets them. Rules and skil
|
|
|
149
149
|
|
|
150
150
|
## Supported stacks and the skills that come with them
|
|
151
151
|
|
|
152
|
-
A track is a starting setup for a dev stack or a kind of work: the top
|
|
152
|
+
A track is a starting setup for a dev stack or a kind of work: the top ten rows are dev tracks, the bottom three are work tracks. Picking a track pre-checks the external skills and tools below. Everything pre-checked comes from an official repository, or from one picked after checking its source, popularity, and install path. That does not vouch for the safety of its contents or the quality of what it produces ([SECURITY.md](SECURITY.md)).
|
|
153
153
|
|
|
154
154
|
| Track | Stack | Pre-checked external skills and tools |
|
|
155
155
|
|---|---|---|
|
|
@@ -158,7 +158,8 @@ A track is a starting setup for a dev stack or a kind of work: the top nine rows
|
|
|
158
158
|
| `csr-fastify` | Vite + React + Fastify | `frontend-design`, `react-best-practices`, `shadcn-ui` |
|
|
159
159
|
| `csr-fastapi` | Vite + React + FastAPI | `frontend-design`, `react-best-practices`, `shadcn-ui` |
|
|
160
160
|
| `ssr-nextjs` | Next.js (App Router) | `frontend-design`, `react-best-practices`, `shadcn-ui` |
|
|
161
|
-
| `ssr-htmx` | htmx + FastAPI | `frontend-design` |
|
|
161
|
+
| `ssr-htmx` | htmx + FastAPI (Python) + daisyUI | `frontend-design` |
|
|
162
|
+
| `ssr-htmx-fastify` | htmx + Fastify (Node) + daisyUI | `frontend-design` |
|
|
162
163
|
| `data` | Python data work (DuckDB, PySide6) | `anthropic-data-plugin` |
|
|
163
164
|
| `tooling` | Bash and Markdown projects with no app stack | None |
|
|
164
165
|
| `full` | Every dev track, plus documents | All of the above, plus `anthropic-document-skills` |
|
|
@@ -166,13 +167,14 @@ A track is a starting setup for a dev stack or a kind of work: the top nine rows
|
|
|
166
167
|
| `project-management` | PM work | None |
|
|
167
168
|
| `growth-marketing` | Growth and content marketing | None (`marketingskills` available) |
|
|
168
169
|
|
|
169
|
-
MCP servers come too. Every track gets `context7` (current library docs). Web tracks (`csr-*`, `ssr-*`, `full`) add `chrome-devtools`, with Google's usage statistics turned off. The `csr
|
|
170
|
+
MCP servers come too. Every track gets `context7` (current library docs). Web tracks (`csr-*`, `ssr-*`, `full`) add `chrome-devtools`, with Google's usage statistics turned off. The `csr-*`, `ssr-htmx` and `ssr-htmx-fastify` tracks add `railway-mcp-server` (Railway's remote server — you sign in on first use), and `csr-supabase` adds `supabase` (Supabase's remote server — you sign in on first use). `full` gets both. On `ssr-nextjs`, Railway MCP is not a default; pick it if you want it. Vercel's and GitHub's official remote servers (`vercel`, `github-mcp`) are never pre-checked — add them with `--with`. Each server is a row in step 3 of the wizard: uncheck it or pass `--without <name>` (e.g. `--without context7`) to leave it out of `.mcp.json`, Codex and OpenCode.
|
|
170
171
|
|
|
171
172
|
More external assets are never pre-checked but can be added at step 3 or with `--with <id>`:
|
|
172
173
|
|
|
173
174
|
- Frontend and design: `web-design-guidelines`, `taste-skill`, `jakubkrehel-skills`, `preline`, `scroll-world`
|
|
174
175
|
- Deployment: `vercel-cli`, `netlify-cli`, `supabase-cli`, `railway-mcp-server`, `vercel`, `railway-skills`
|
|
175
176
|
- Security review: `security-guidance`, `claude-security`
|
|
177
|
+
- Structural code search and lint rules: `ast-grep` (needs the ast-grep CLI installed)
|
|
176
178
|
- Marketing and finance: `marketingskills`, `finance-skills`
|
|
177
179
|
- Slides and video: `frontend-slides`, `marp-slide`, `hyperframes`, `remotion`, `gsap-skills`, and more
|
|
178
180
|
- Teams that want a fixed development process: `openspec`, `bmad-method` (compared in [WORKFLOWS.md](docs/WORKFLOWS.md))
|
|
@@ -47,6 +47,8 @@ var TRACKS = [
|
|
|
47
47
|
"csr-fastify",
|
|
48
48
|
"csr-fastapi",
|
|
49
49
|
"ssr-htmx",
|
|
50
|
+
// #820 — htmx 의 Node 백엔드. `ssr-htmx`(FastAPI) 의 id 는 설치 기록이 갖고 있어 그대로 두고 옆에 더했다.
|
|
51
|
+
"ssr-htmx-fastify",
|
|
50
52
|
"ssr-nextjs",
|
|
51
53
|
"data",
|
|
52
54
|
"executive",
|
|
@@ -448,7 +450,7 @@ var EXTERNAL_ASSETS = [
|
|
|
448
450
|
}
|
|
449
451
|
},
|
|
450
452
|
// #709 (ADR-101) — Railway MCP 서버의 **선택** 경로. 서버 정의는 트랙 표(`templates/track-mcp-map.tsv`)의 같은 이름
|
|
451
|
-
// 행 하나다(key === 행 이름). 그 행의 패턴이 기본 트랙(csr-* · ssr-htmx · full)을 정하고, 이 항목은 그 밖의 트랙
|
|
453
|
+
// 행 하나다(key === 행 이름). 그 행의 패턴이 기본 트랙(csr-* · ssr-htmx · ssr-htmx-fastify · full)을 정하고, 이 항목은 그 밖의 트랙
|
|
452
454
|
// (ssr-nextjs 등)에서 위저드 체크 · `--with` 로 고르게 한다. experimental 이라 조건으로는 미리 체크되지 않는다.
|
|
453
455
|
// #712 (ADR-106) — 행이 Railway 공식 원격 서버(`https://mcp.railway.com`, OAuth)로 바뀌었다. 이름 · 키 id 는 그대로라 기록이
|
|
454
456
|
// 이어져 update 가 같은 키를 갈아 끼운다.
|
|
@@ -456,7 +458,7 @@ var EXTERNAL_ASSETS = [
|
|
|
456
458
|
id: "railway-mcp-server",
|
|
457
459
|
tier: "experimental",
|
|
458
460
|
// railwayapp/cli 621★ (원격 서버에 공개 저장소가 따로 없다 — 같은 벤더의 CLI 를 감시, REPO_OVERRIDE)
|
|
459
|
-
description: "Railway's official remote MCP (https://mcp.railway.com, signs in with OAuth on first use) in .mcp.json, Codex and OpenCode \u2014 default on csr-* \xB7 ssr-htmx \xB7 full; check it to add it on any other track",
|
|
461
|
+
description: "Railway's official remote MCP (https://mcp.railway.com, signs in with OAuth on first use) in .mcp.json, Codex and OpenCode \u2014 default on csr-* \xB7 ssr-htmx \xB7 ssr-htmx-fastify \xB7 full; check it to add it on any other track",
|
|
460
462
|
category: "backend",
|
|
461
463
|
source: "railwayapp",
|
|
462
464
|
condition: { kind: "opt-in" },
|
|
@@ -658,6 +660,20 @@ var EXTERNAL_ASSETS = [
|
|
|
658
660
|
skill: "preline-theme-generator"
|
|
659
661
|
}
|
|
660
662
|
},
|
|
663
|
+
// #822 (사용자 결정 2026-10-14) — ast-grep 공식 스킬. 언어에 매이지 않아 트랙에 묶지 않고 opt-in.
|
|
664
|
+
// 벤더 README 가 "설치하면 발견될 뿐 선호되지 않는다"고 적고, 기본으로 쓰게 하려면 상주 지시를 권한다 — 관측 없는
|
|
665
|
+
// 상주는 넣지 않으므로 원하는 사람이 고르는 자리에만 둔다. 스킬 파일에 CLI 설치 안내가 없어 description 에 적는다.
|
|
666
|
+
// 리포에 스킬이 2종(ast-grep · ast-grep-outline)이라 하나만 받는다. #820 의 htmx-fastapi-ui 룰은 이 스킬 없이 동작한다.
|
|
667
|
+
{
|
|
668
|
+
id: "ast-grep",
|
|
669
|
+
tier: "experimental",
|
|
670
|
+
// ast-grep/agent-skill 893★ (license none — README "follows ast-grep's MIT"; 본체 ast-grep/ast-grep 16k MIT, 2026-10-14)
|
|
671
|
+
description: "ast-grep \u2014 write and test structural (AST) search and lint rules across languages (ast-grep official). Needs the ast-grep CLI installed separately; fires reliably only when you ask for ast-grep",
|
|
672
|
+
category: "dev-tools",
|
|
673
|
+
source: "ast-grep",
|
|
674
|
+
condition: { kind: "opt-in" },
|
|
675
|
+
method: { kind: "skill", source: "ast-grep/agent-skill", skill: "ast-grep" }
|
|
676
|
+
},
|
|
661
677
|
// === dev tools (has_dev_track) ===
|
|
662
678
|
// v26.110.0 (ADR-039) — security-guidance: 매 편집 패턴 경고 + LLM diff 리뷰 (훅 12파일,
|
|
663
679
|
// Python + Agent SDK 의존). 상시 훅 = 매 편집 비용 + 폭발 반경 — 실측 전 기본설치 금지
|
|
@@ -1123,7 +1139,7 @@ import { dirname as dirname3, join as join4 } from "path";
|
|
|
1123
1139
|
// package.json
|
|
1124
1140
|
var package_default = {
|
|
1125
1141
|
name: "@uzysjung/agent-harness",
|
|
1126
|
-
version: "26.
|
|
1142
|
+
version: "26.172.0",
|
|
1127
1143
|
description: "Curate vetted AI-coding skills & plugins by your tech stack \u2014 install only what you need, across Claude Code, Codex, OpenCode & Antigravity",
|
|
1128
1144
|
type: "module",
|
|
1129
1145
|
publishConfig: {
|
|
@@ -1368,22 +1384,6 @@ function copyFile(source, target) {
|
|
|
1368
1384
|
mkdirSync(dirname2(target), { recursive: true });
|
|
1369
1385
|
copyFileSync(source, target);
|
|
1370
1386
|
}
|
|
1371
|
-
function copyDir(source, target, foreignOf) {
|
|
1372
|
-
if (!existsSync(source)) {
|
|
1373
|
-
throw new Error(`Source dir not found: ${source}`);
|
|
1374
|
-
}
|
|
1375
|
-
mkdirSync(target, { recursive: true });
|
|
1376
|
-
const skipped = [];
|
|
1377
|
-
for (const rel of listFilesRecursive(source)) {
|
|
1378
|
-
const foreign = foreignOf(rel);
|
|
1379
|
-
if (foreign !== null) {
|
|
1380
|
-
skipped.push(foreign);
|
|
1381
|
-
continue;
|
|
1382
|
-
}
|
|
1383
|
-
copyFile(join2(source, rel), join2(target, rel));
|
|
1384
|
-
}
|
|
1385
|
-
return skipped;
|
|
1386
|
-
}
|
|
1387
1387
|
var MAX_BACKUP_CLAIMS = 100;
|
|
1388
1388
|
function claimBackupPath(base, claim) {
|
|
1389
1389
|
for (let n = 1; n <= MAX_BACKUP_CLAIMS; n++) {
|
|
@@ -1665,38 +1665,11 @@ function mergeAssets(previous, current) {
|
|
|
1665
1665
|
function hashContent(content) {
|
|
1666
1666
|
return createHash("sha256").update(content, "utf8").digest("hex");
|
|
1667
1667
|
}
|
|
1668
|
-
function isHarnessOwned(baseline, key, current) {
|
|
1669
|
-
const recorded = baseline.get(key);
|
|
1670
|
-
return recorded !== void 0 && recorded === hashContent(current);
|
|
1671
|
-
}
|
|
1672
1668
|
function mergeExternalFiles(previous, current) {
|
|
1673
1669
|
const byPath = /* @__PURE__ */ new Map();
|
|
1674
1670
|
for (const file of [...previous ?? [], ...current]) byPath.set(file.path, file);
|
|
1675
1671
|
return [...byPath.values()];
|
|
1676
1672
|
}
|
|
1677
|
-
function collectSkillHashes(projectDir, templatesDir) {
|
|
1678
|
-
const skillsDir = join4(projectDir, ".claude/skills");
|
|
1679
|
-
return listFilesRecursive(skillsDir).filter((rel) => existsSync2(join4(templatesDir, "skills", rel))).map((rel) => ({
|
|
1680
|
-
path: rel,
|
|
1681
|
-
sha256: hashContent(readFileSync3(join4(skillsDir, rel), "utf8"))
|
|
1682
|
-
}));
|
|
1683
|
-
}
|
|
1684
|
-
function collectPolicyHashes(projectDir, templatesDir) {
|
|
1685
|
-
const out = [];
|
|
1686
|
-
for (const { dir, ext } of POLICY_DIRS) {
|
|
1687
|
-
const targetDir = join4(projectDir, ".claude", dir);
|
|
1688
|
-
const sourceDir = join4(templatesDir, dir);
|
|
1689
|
-
for (const rel of listFilesRecursive(targetDir)) {
|
|
1690
|
-
if (!rel.endsWith(ext)) continue;
|
|
1691
|
-
if (!existsSync2(join4(sourceDir, rel))) continue;
|
|
1692
|
-
out.push({
|
|
1693
|
-
path: `${dir}/${rel}`,
|
|
1694
|
-
sha256: hashContent(readFileSync3(join4(targetDir, rel), "utf8"))
|
|
1695
|
-
});
|
|
1696
|
-
}
|
|
1697
|
-
}
|
|
1698
|
-
return out;
|
|
1699
|
-
}
|
|
1700
1673
|
function writeInstallLog(projectDir, log) {
|
|
1701
1674
|
const path2 = installLogPath(projectDir);
|
|
1702
1675
|
mkdirSync2(dirname3(path2), { recursive: true });
|
|
@@ -1909,7 +1882,8 @@ var TRACK_DISPLAY_NAMES = {
|
|
|
1909
1882
|
"csr-supabase": "CSR Supabase",
|
|
1910
1883
|
"csr-fastify": "CSR Fastify",
|
|
1911
1884
|
"csr-fastapi": "CSR FastAPI",
|
|
1912
|
-
"ssr-htmx": "SSR
|
|
1885
|
+
"ssr-htmx": "SSR htmx + FastAPI",
|
|
1886
|
+
"ssr-htmx-fastify": "SSR htmx + Fastify",
|
|
1913
1887
|
"ssr-nextjs": "SSR Next.js",
|
|
1914
1888
|
data: "Data",
|
|
1915
1889
|
executive: "Executive",
|
|
@@ -2136,17 +2110,23 @@ var onTracks = (pattern) => (s) => anyTrack(s.tracks, pattern);
|
|
|
2136
2110
|
var COMMON_RULES = ["git-policy", "change-management", "doc-governance"];
|
|
2137
2111
|
var DEV_RULES = ["test-policy", "ship-checklist"];
|
|
2138
2112
|
var UI_RULES = ["ui-components"];
|
|
2113
|
+
var REACT_UI_TRACKS = "csr-*|ssr-nextjs|full";
|
|
2139
2114
|
var TRACK_RULES = {
|
|
2140
2115
|
base: [],
|
|
2141
2116
|
// #456 — 공통 룰만. cli-development 는 tooling·full 전용
|
|
2142
2117
|
"csr-supabase": [],
|
|
2143
2118
|
"csr-fastify": [],
|
|
2144
2119
|
"csr-fastapi": [],
|
|
2145
|
-
|
|
2120
|
+
// #820 — htmx 화면 기술(Tailwind v4 + daisyUI)과 그 스택에서 실제로 도는 린트. 백엔드마다 템플릿 형식이
|
|
2121
|
+
// 달라 린트가 갈린다(Jinja = ast-grep · 서버 JSX = @shadcn/lint) — 실측 = `docs/plans/820-spike/`. `full` 은 아래.
|
|
2122
|
+
"ssr-htmx": ["htmx-fastapi-ui"],
|
|
2123
|
+
"ssr-htmx-fastify": ["htmx-fastify-ui"],
|
|
2146
2124
|
"ssr-nextjs": [],
|
|
2147
2125
|
data: [],
|
|
2148
2126
|
executive: [],
|
|
2149
2127
|
tooling: ["cli-development"],
|
|
2128
|
+
// #820 — htmx 룰 둘은 `full` 에 넣지 않는다. OpenCode 가 섞인 설치는 룰을 AGENTS.md 본문에 인라인하는데, full 의 렌더가
|
|
2129
|
+
// Antigravity 상한(24,000 B)을 넘는다(22,322 → 24,455 B, `agents-md-size-budget`). htmx 를 쓰면 그 트랙을 함께 고른다.
|
|
2150
2130
|
full: ["cli-development"],
|
|
2151
2131
|
// v0.5.0 — executive-style baselines (no dev rules; common rules only).
|
|
2152
2132
|
"project-management": [],
|
|
@@ -2159,7 +2139,7 @@ function resolveRules(spec) {
|
|
|
2159
2139
|
set.add(r);
|
|
2160
2140
|
}
|
|
2161
2141
|
}
|
|
2162
|
-
if (
|
|
2142
|
+
if (anyTrack(spec.tracks, REACT_UI_TRACKS)) {
|
|
2163
2143
|
for (const r of UI_RULES) {
|
|
2164
2144
|
set.add(r);
|
|
2165
2145
|
}
|
|
@@ -2634,7 +2614,6 @@ export {
|
|
|
2634
2614
|
mergeOutside,
|
|
2635
2615
|
ensureDir,
|
|
2636
2616
|
copyFile,
|
|
2637
|
-
copyDir,
|
|
2638
2617
|
backupFile,
|
|
2639
2618
|
backupFromCopy,
|
|
2640
2619
|
claimBackupDir,
|
|
@@ -2676,10 +2655,7 @@ export {
|
|
|
2676
2655
|
buildInstallLog,
|
|
2677
2656
|
mergeRootFiles,
|
|
2678
2657
|
hashContent,
|
|
2679
|
-
isHarnessOwned,
|
|
2680
2658
|
mergeExternalFiles,
|
|
2681
|
-
collectSkillHashes,
|
|
2682
|
-
collectPolicyHashes,
|
|
2683
2659
|
writeInstallLog,
|
|
2684
2660
|
readInstallLog,
|
|
2685
2661
|
readInstallLogStatus,
|
|
@@ -2703,4 +2679,4 @@ export {
|
|
|
2703
2679
|
CATEGORIES,
|
|
2704
2680
|
CATEGORY_TITLES
|
|
2705
2681
|
};
|
|
2706
|
-
//# sourceMappingURL=chunk-
|
|
2682
|
+
//# sourceMappingURL=chunk-T2HBTG32.js.map
|