@bstage-sdk/cli 0.8.4 → 0.8.5

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/dist/MIGRATION.md CHANGED
@@ -51,6 +51,40 @@
51
51
 
52
52
  ---
53
53
 
54
+ ## → cli 0.8.5 · ai-toolkit 0.8.5
55
+
56
+ ### `bstage doctor`: 포털 진단이 실패해도 종료 코드 1 — `자동` · `선택`
57
+
58
+ **영향**
59
+
60
+ - CI·스크립트·에이전트가 `bstage doctor`의 종료 코드를 보는 프로젝트. 로그인·링크가 없는 환경(포털 진단 `skipped`)은 영향이 없다.
61
+
62
+ **변경 내용**
63
+
64
+ - 포털 진단 자체가 실패하면 — 배치 목록 조회 실패, 일부 배치 진단의 권한 부족(403)·서버 오류(5xx) 등으로 `portal.status`가 `"error"`면 — 종료 코드 **1**로 끝난다. 전에는 `error` 심각도 항목이 없으면 0이라, 진단을 못 끝낸 것을 "문제 없음"으로 읽을 수 있었다.
65
+ - 그대로인 것: `error` 항목이 있으면 1, 건너뜀(`skipped`)·서버 미지원(`unsupported`)·`warn`/`info`만 있으면 0, 로컬 진단 결과는 종료 코드에 영향 없음.
66
+
67
+ **적용**
68
+
69
+ 1. (자동) CLI를 올린다. 종료 코드 1을 실패로 처리하던 CI는 그대로 동작한다. 1이 나오면 `--json`의 `portal.status`·`portal.reason`·`portal.placements[].error`로 원인을 본다(권한 부족이면 스테이지 관리 권한이 있는 계정·토큰인지 확인).
70
+
71
+ ### 어드민 템플릿도 `BstageClient`로 어드민 API를 부른다(에이전트 안내 정정) — `자동`
72
+
73
+ **영향**
74
+
75
+ - 코드·빌드 동작은 바뀌지 않는다. 에이전트 안내 문서만 바로잡았다.
76
+ - `AGENTS.md` 관리 영역과 `bstage-template` 스킬이 "BstageClient는 유저단 API만 지원하고 어드민용 API는 미지원"이라고 안내했다. 어드민 게이트웨이가 열린 지금 이 문구를 따르면 에이전트가 어드민 템플릿의 데이터 호출을 거부하거나 사용자 확인을 되풀이한다.
77
+
78
+ **변경 내용**
79
+
80
+ - 어드민 템플릿도 같은 `BstageClient`를 쓴다. 어드민 도메인에 임베드되면 `baseUrl` 기본값이 어드민 게이트웨이(`/gw`)가 되고, 게이트웨이가 어드민 로그인 쿠키와 MANAGEMENT 키(`bsm_`)를 함께 확인한다. PUBLIC 키로는 `KEY_TYPE_NOT_ALLOWED`다.
81
+ - 호출 가능한 경로는 포털 API 레퍼런스(유저/운영자 탭)에 있는 것뿐이며, 목록에 없는 API는 경로를 추측하지 말고 사용자에게 먼저 확인한다는 안내는 그대로다.
82
+ - **AGENTS.md 관리 영역 v17**: 파일 트리의 `client.ts` 설명과 API 금지 사항 절을 위 내용으로 고쳤다. `bstage-template` 스킬도 같은 내용으로 고쳤다. 상세는 [GETTING_STARTED.md](./GETTING_STARTED.md) "8. 어드민 템플릿 › API 호출".
83
+
84
+ **적용**
85
+
86
+ 1. (자동) `npx @bstage-sdk/cli@latest ai update` — 스킬·`AGENTS.md` 관리 영역을 v17로 갱신한다.
87
+
54
88
  ## → cli 0.8.4 · ai-toolkit 0.8.4
55
89
 
56
90
  ### `bstage doctor`가 포털 배치 진단을 함께 본다 — `자동` · `선택`
package/dist/index.js CHANGED
@@ -4456,6 +4456,9 @@ var DIAGNOSIS_CONCURRENCY = 4;
4456
4456
  function portalHasErrorFinding(p5) {
4457
4457
  return (p5?.placements ?? []).some((row) => row.findings.some((f) => f.severity === "error"));
4458
4458
  }
4459
+ function portalNeedsWork(p5) {
4460
+ return p5 !== void 0 && (p5.status === "error" || portalHasErrorFinding(p5));
4461
+ }
4459
4462
  async function diagnosePortal(opts, deps = {}) {
4460
4463
  const explicit = Boolean(opts.placement);
4461
4464
  const ctx = await openContext(deps, explicit);
@@ -4982,9 +4985,6 @@ function clean(s) {
4982
4985
  function marker(severity) {
4983
4986
  return MARKERS[severity] ?? pc16.dim("\xB7");
4984
4987
  }
4985
- function portalNeedsWork(p5) {
4986
- return p5 !== void 0 && (p5.status === "error" || portalHasErrorFinding(p5));
4987
- }
4988
4988
  function hintSuffix(reason, hint) {
4989
4989
  return hint && !(reason ?? "").includes(hint) ? ` (\uD560 \uC77C: ${hint})` : "";
4990
4990
  }
@@ -5328,7 +5328,7 @@ async function doctorCommand(options, deps = {}) {
5328
5328
  )
5329
5329
  ]);
5330
5330
  const report2 = { ...local, portal };
5331
- if (portalHasErrorFinding(portal)) process.exitCode = ExitCode.FAILURE;
5331
+ if (portalNeedsWork(portal)) process.exitCode = ExitCode.FAILURE;
5332
5332
  if (options.json) {
5333
5333
  printJson(report2);
5334
5334
  return;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bstage-sdk/cli",
3
- "version": "0.8.4",
3
+ "version": "0.8.5",
4
4
  "description": "bstage SDK CLI — build b.stage templates",
5
5
  "type": "module",
6
6
  "publishConfig": {
@@ -32,14 +32,14 @@
32
32
  "liquidjs": "^10.24.0",
33
33
  "picocolors": "^1.1.1",
34
34
  "vite": "^7.0.0",
35
- "@bstage-sdk/ai-toolkit": "0.8.4",
36
- "@bstage-sdk/core": "0.8.4"
35
+ "@bstage-sdk/ai-toolkit": "0.8.5",
36
+ "@bstage-sdk/core": "0.8.5"
37
37
  },
38
38
  "devDependencies": {
39
39
  "@types/node": "^25.5.0",
40
40
  "tsup": "^8.0.0",
41
41
  "typescript": "^5.5.0",
42
- "@bstage-sdk/design": "0.8.4"
42
+ "@bstage-sdk/design": "0.8.5"
43
43
  },
44
44
  "license": "MIT",
45
45
  "scripts": {