cdsa-harness 0.19.0 → 0.20.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.md CHANGED
@@ -84,7 +84,7 @@ Claude Code·OpenCode 컨벤션을 따릅니다.
84
84
  | `/status` (=`/cost`) | 상태 · 세션 누적 토큰 |
85
85
  | `/models [검색어]` | **실시간 모델 목록에서 번호로 선택**(4개 제공자 모두) |
86
86
  | `/guide` · `/tutorial` | 빠른 시작 안내 · 단계별 인터랙티브 튜토리얼 |
87
- | `/workspace <폴더>` | 작업 폴더 보기/변경 (`.` = 현재 폴더) |
87
+ | `/workspace <폴더>` | 작업 폴더 보기/변경 **기본은 현재 폴더(cwd)**, 터미널답게 |
88
88
  | `/color` | 색상 켜기/끄기(흑백) |
89
89
  | `/setup` | 제공자·API 키·모델 대화형 연결 |
90
90
  | `/provider <이름>` | openai · anthropic · openrouter · mock 전환 |
@@ -231,7 +231,7 @@ cdsa-harness
231
231
  "provider": "openai",
232
232
  "api_key": "",
233
233
  "model": "gpt-4o-mini",
234
- "workspace": "./workspace",
234
+ "workspace": ".",
235
235
  "approval_mode": "manual",
236
236
  "allow_shell": false,
237
237
  "max_steps": 8,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cdsa-harness",
3
- "version": "0.19.0",
3
+ "version": "0.20.0",
4
4
  "description": "AI 에이전트의 내부 동작을 단계별로 드러내는 교육용 터미널 하네스. 실시간 스트리밍 + OpenAI/Claude/OpenRouter + MCP + npm 플러그인·크로스포맷 스킬.",
5
5
  "type": "module",
6
6
  "bin": {
package/src/builtins.js CHANGED
@@ -2,7 +2,7 @@
2
2
  // 스킬/플러그인/버전을 바꾼 뒤 `node scripts/gen-builtins.mjs` 로 재생성하세요.
3
3
  import p0 from "../plugins/hwpx_read.mjs";
4
4
 
5
- export const VERSION = "0.19.0";
5
+ export const VERSION = "0.20.0";
6
6
 
7
7
  export const BUILTIN_PLUGINS = [p0];
8
8
 
package/src/cli.js CHANGED
@@ -832,9 +832,8 @@ export async function main(argv = []) {
832
832
  "AI 가 파일을 다룰 ‘작업 폴더’를 정하세요.",
833
833
  c.dim("이 폴더 밖은 절대 건드리지 않아요(안전장치)."),
834
834
  "",
835
- ` ${c.bold("엔터")} 기본값 ${c.cyan("./workspace")} (하위 폴더 자동 생성)`,
836
- ` ${c.bold(".")} 지금 폴더를 그대로 사용`,
837
- ` ${c.bold("경로")} 예) ${c.cyan("./문서")} 또는 ${c.cyan("C:\\작업\\프로젝트")}`,
835
+ ` ${c.bold("엔터")} ${c.cyan("지금 이 폴더")} 그대로 사용 (터미널답게, 기본)`,
836
+ ` ${c.bold("경로")} 따로 격리하고 싶으면 입력 — 예) ${c.cyan("./sandbox")} 또는 ${c.cyan("C:\\작업\\프로젝트")}`,
838
837
  ],
839
838
  { title: "📁 작업 폴더 설정 (처음 한 번)", color: "cyan" }
840
839
  ));
package/src/config.js CHANGED
@@ -34,7 +34,7 @@ const DEFAULTS = {
34
34
  api_key: "",
35
35
  base_url: "", // OpenAI 호환 사내/폐쇄망 LLM 의 전체 엔드포인트 직접 지정(있으면 우선)
36
36
  model: "mock-agent",
37
- workspace: "./workspace",
37
+ workspace: ".", // 기본 = 현재 폴더(cwd). Claude Code/OpenCode 와 동일 — 별도 폴더를 만들지 않는다.
38
38
  approval_mode: "manual",
39
39
  allow_shell: false,
40
40
  max_steps: 8,
@@ -70,7 +70,7 @@ export class Config {
70
70
 
71
71
  // CLI 도구이므로 작업 폴더 상대경로는 '현재 폴더' 기준으로 해석한다(직관적).
72
72
  workspacePath() {
73
- let p = this.workspace || "./workspace";
73
+ let p = this.workspace || ".";
74
74
  if (!path.isAbsolute(p)) p = path.resolve(process.cwd(), p);
75
75
  return p;
76
76
  }
package/src/loop.js CHANGED
@@ -135,7 +135,8 @@ export class AgentLoop {
135
135
  const parts = [
136
136
  "# 정체성",
137
137
  "당신은 CDSA Harness(made by CDSA) 안에서 동작하는 코딩·업무 에이전트입니다.",
138
- "파일시스템에 직접 접근할 수 없으며, 제공된 도구 호출로만 작업 폴더를 다룹니다.",
138
+ "작업 폴더의 파일을 도구(list_dir/read_file/search_files/edit_file/write_file)로 직접 읽고·검색하고·수정할 있습니다.",
139
+ "'파일에 접근할 수 없다'고 답하지 마세요 — 필요한 도구를 호출하면 됩니다. 도구가 곧 당신의 손입니다.",
139
140
  "",
140
141
  "# 환경",
141
142
  `- 작업 폴더(루트): ${ws}`,
package/src/tools.js CHANGED
@@ -86,7 +86,7 @@ export class Toolbox {
86
86
  const root = this.workspace + path.sep;
87
87
  if (candidate !== this.workspace && !candidate.startsWith(root)) {
88
88
  throw new ToolError(
89
- `작업 폴더 밖 경로에는 접근할 수 없습니다: ${rel} (허용 루트: ${this.workspace})`
89
+ `작업 폴더 밖 경로입니다: ${rel} 현재 작업 폴더는 ${this.workspace} 입니다. 다른 폴더에서 작업하려면 사용자가 /workspace <경로> 로 변경할 수 있다고 안내하세요.`
90
90
  );
91
91
  }
92
92
  return candidate;