@baryonlabs/cli 0.4.0 → 0.4.2

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.md CHANGED
@@ -34,7 +34,7 @@ curl -fsSL https://cli.baryon.ai/install.sh | sh
34
34
  | `baryon setup` | API 키 등록 + pi 프로바이더 구성 |
35
35
  | `baryon config` | 현재 설정 보기 (`--key`, `--base-url`, `--model` 로 변경) |
36
36
  | `baryon models` | 사용 가능한 모델 목록 (`pi --list-models` 패스스루) |
37
- | `baryon extensions` | 기본 확장 설치(서브에이전트·캔버스·셸·웹), `list` 로 목록 |
37
+ | `baryon extensions` | 기본 확장 설치(캔버스·셸·에이전트 하네스·수식 표시·워크플로), `list` 로 목록 |
38
38
  | `baryon doctor` | 설치·연결 진단 |
39
39
  | `baryon update` | CLI + pi 에이전트 업데이트 |
40
40
  | `baryon help` | 도움말 |
@@ -51,13 +51,11 @@ baryon --provider openai # 다른 모델로 전환·비교
51
51
 
52
52
  `baryon setup` 시 아래 pi 확장이 자동 설치되어 바로 쓸 수 있습니다(`--no-extensions` 로 건너뛰기, `baryon extensions` 로 재설치):
53
53
 
54
- - **서브에이전트** — 작업 분해·위임·통합 ([pi-subagents](https://github.com/nicobailon/pi-subagents))
55
54
  - **캔버스** ([pi-canvas](https://github.com/jyaunches/pi-canvas))
56
55
  - **인터랙티브 셸** ([pi-interactive-shell](https://github.com/nicobailon/pi-interactive-shell))
57
- - **웹 액세스** ([pi-web-access](https://github.com/nicobailon/pi-web-access))
58
- - **웹 페치** ([pi-web-fetch](https://github.com/georgebashi/pi-web-fetch))
59
- - **웹 검색** ([pi-search](https://github.com/buddingnewinsights/pi-search))
60
- - **병렬 웹 검색** ([pi-parallel-web-search](https://github.com/philipp-spiess/pi-parallel-web-search))
56
+ - **에이전트 하네스** — 도메인별 에이전트 팀·스킬·프롬프트 설계 ([pi-agent-harness](https://github.com/baryonlabs/pi-agent-harness))
57
+ - **터미널 수식 표시** — LaTeX 스타일 수식을 Unicode 수식 표기로 변환 ([pi-terminal-math](https://github.com/baryonlabs/pi-terminal-math))
58
+ - **다이내믹 워크플로** — 서브에이전트 팬아웃·통합 ([pi-dynamic-workflows](https://github.com/michaelliv/pi-dynamic-workflows))
61
59
 
62
60
  ## 설정
63
61
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@baryonlabs/cli",
3
- "version": "0.4.0",
3
+ "version": "0.4.2",
4
4
  "description": "Baryon CLI — AI 코딩·학습 에이전트. baryon.ai API에 기본 연결된 pi 코딩 에이전트 래퍼. 한 줄 설치, 상용·로컬 모델 전환.",
5
5
  "type": "module",
6
6
  "bin": {
@@ -24,7 +24,7 @@
24
24
  "postinstall": "node ./bin/baryon.js _welcome || true"
25
25
  },
26
26
  "dependencies": {
27
- "@earendil-works/pi-coding-agent": "^0.78.0"
27
+ "@earendil-works/pi-coding-agent": "^0.80.3"
28
28
  },
29
29
  "keywords": [
30
30
  "baryon",
package/src/commands.js CHANGED
@@ -27,6 +27,7 @@ import {
27
27
  KEY_PREFIX,
28
28
  PI_PACKAGE,
29
29
  PI_SKILLS_DIR,
30
+ PREFERRED_DEFAULT_MODEL,
30
31
  PROVIDER,
31
32
  SKILLS_REPO,
32
33
  SUPPORT_EMAIL,
@@ -92,7 +93,10 @@ export async function setup(args) {
92
93
  warn(t("setup.modelsFailed", { count: models.length }));
93
94
  }
94
95
 
95
- saveConfig({ defaultModel: models[0].id });
96
+ // 두루(baryon-duru)가 카탈로그에 있으면 기본 모델로, 없으면 첫 항목.
97
+ const defaultModel =
98
+ (models.find((m) => m.id === PREFERRED_DEFAULT_MODEL) || models[0]).id;
99
+ saveConfig({ defaultModel });
96
100
  const file = syncPiModels({ baseUrl, models });
97
101
  ok(t("setup.providerConfigured", { provider: c.lime(PROVIDER), file: c.dim(file) }));
98
102
 
package/src/constants.js CHANGED
@@ -58,26 +58,41 @@ export const PI_SKILLS_DIR = path.join(PI_AGENT_DIR, "skills");
58
58
  * Fallback model catalog used when /models discovery is unavailable
59
59
  * (e.g. offline setup). Institutions adjust these to match their plan.
60
60
  * `context` / `max` are conservative defaults; pi tolerates overrides.
61
+ *
62
+ * Baryon 3-tier lineup (기준: baryon-ai-api docs/MODELS.md — 이름은 계약,
63
+ * 실제 업스트림 모델은 게이트웨이 라우팅으로 조절):
64
+ * 그저(geujeo) 단순·빠름 · 두루(duru) 범용 기본 · 그루(guru) 사고·기획.
61
65
  */
62
66
  export const DEFAULT_MODELS = [
63
67
  {
64
- id: "baryon-coder",
65
- name: "Baryon Coder",
66
- reasoning: true,
68
+ id: "baryon-duru",
69
+ name: "두루 (Duru) — 범용",
70
+ reasoning: false,
67
71
  input: ["text", "image"],
68
- contextWindow: 128000,
69
- maxTokens: 16384,
72
+ contextWindow: 200000,
73
+ maxTokens: 8192,
70
74
  },
71
75
  {
72
- id: "baryon-coder-mini",
73
- name: "Baryon Coder Mini",
76
+ id: "baryon-geujeo",
77
+ name: "그저 (Geujeo) — 단순·빠름",
74
78
  reasoning: false,
75
79
  input: ["text"],
76
- contextWindow: 128000,
80
+ contextWindow: 262144,
77
81
  maxTokens: 8192,
78
82
  },
83
+ {
84
+ id: "baryon-guru",
85
+ name: "그루 (Guru) — 사고·기획",
86
+ reasoning: true,
87
+ input: ["text", "image"],
88
+ contextWindow: 200000,
89
+ maxTokens: 16384,
90
+ },
79
91
  ];
80
92
 
93
+ /** Preferred default model when present in a discovered catalog (두루). */
94
+ export const PREFERRED_DEFAULT_MODEL = "baryon-duru";
95
+
81
96
  /**
82
97
  * Extensions installed by default so `baryon` ships with sub-agents, a canvas,
83
98
  * an interactive shell, and web access/search out of the box. Installed via
@@ -93,6 +108,8 @@ export const DEFAULT_MODELS = [
93
108
  export const DEFAULT_EXTENSIONS = [
94
109
  { name: "pi-canvas", src: "https://github.com/jyaunches/pi-canvas", note: "캔버스" },
95
110
  { name: "pi-interactive-shell", src: "https://github.com/nicobailon/pi-interactive-shell", note: "인터랙티브 셸" },
111
+ { name: "pi-agent-harness", src: "https://github.com/baryonlabs/pi-agent-harness", note: "에이전트 팀/스킬 설계" },
112
+ { name: "pi-terminal-math", src: "https://github.com/baryonlabs/pi-terminal-math", note: "터미널 수식 표시" },
96
113
  // Claude-Code-style dynamic workflows: registers a `workflow` tool that fans
97
114
  // work out across isolated subagents, then synthesizes. Installed from npm
98
115
  // (a pi-package) rather than a git clone. https://github.com/michaelliv/pi-dynamic-workflows
package/src/i18n.js CHANGED
@@ -152,7 +152,7 @@ const MESSAGES = {
152
152
  "help.cmd.config": "현재 설정 보기",
153
153
  "help.cmd.configNote": "(--key/--base-url/--model/--lang 로 변경)",
154
154
  "help.cmd.models": "사용 가능한 모델 목록",
155
- "help.cmd.extensions": "기본 확장 설치(서브에이전트·캔버스·셸·웹)",
155
+ "help.cmd.extensions": "기본 확장 설치(캔버스·셸·하네스·수식·워크플로)",
156
156
  "help.cmd.extensionsNote": "· list 로 목록",
157
157
  "help.cmd.skills": "기본 스킬 설치(pdf·pptx·xlsx)",
158
158
  "help.cmd.skillsNote": "· list 로 목록",
@@ -295,7 +295,7 @@ const MESSAGES = {
295
295
  "help.cmd.config": "Show current settings",
296
296
  "help.cmd.configNote": "(change with --key/--base-url/--model/--lang)",
297
297
  "help.cmd.models": "List available models",
298
- "help.cmd.extensions": "Install default extensions (sub-agents·canvas·shell·web)",
298
+ "help.cmd.extensions": "Install default extensions (canvas·shell·harness·math·workflow)",
299
299
  "help.cmd.extensionsNote": "· list to view",
300
300
  "help.cmd.skills": "Install default skills (pdf·pptx·xlsx)",
301
301
  "help.cmd.skillsNote": "· list to view",
package/src/index.js CHANGED
@@ -11,9 +11,20 @@ import {
11
11
  syncPiModels,
12
12
  piProviderConfigured,
13
13
  } from "./config.js";
14
- import { DEFAULT_BASE_URL, DEFAULT_MODELS, PROVIDER } from "./constants.js";
14
+ import {
15
+ DEFAULT_BASE_URL,
16
+ DEFAULT_MODELS,
17
+ PREFERRED_DEFAULT_MODEL,
18
+ PROVIDER,
19
+ } from "./constants.js";
15
20
  import { runPi, resolvePiEntry } from "./pi.js";
16
21
 
22
+ /** Default model for a catalog: 두루(baryon-duru) when present, else first. */
23
+ export function pickDefaultModel(models) {
24
+ const preferred = models.find((m) => m.id === PREFERRED_DEFAULT_MODEL);
25
+ return (preferred || models[0]).id;
26
+ }
27
+
17
28
  /**
18
29
  * Configure the baryon provider: persist key/baseUrl, discover (or default)
19
30
  * models, and write pi's models.json. Returns the resolved config + model ids.
@@ -21,9 +32,10 @@ import { runPi, resolvePiEntry } from "./pi.js";
21
32
  export async function configure({ apiKey, baseUrl = DEFAULT_BASE_URL } = {}) {
22
33
  if (apiKey) saveConfig({ apiKey, baseUrl });
23
34
  const models = (apiKey && (await discoverModels(baseUrl, apiKey))) || DEFAULT_MODELS;
24
- saveConfig({ defaultModel: models[0].id });
35
+ const defaultModel = pickDefaultModel(models);
36
+ saveConfig({ defaultModel });
25
37
  syncPiModels({ baseUrl, models });
26
- return { baseUrl, models: models.map((m) => m.id), defaultModel: models[0].id };
38
+ return { baseUrl, models: models.map((m) => m.id), defaultModel };
27
39
  }
28
40
 
29
41
  /** Launch pi with the current baryon config. Resolves to the exit code. */