obc-cli2 0.2.3 → 0.2.6
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/.next/standalone/.next/BUILD_ID +1 -1
- package/.next/standalone/.next/build-manifest.json +3 -3
- package/.next/standalone/.next/prerender-manifest.json +3 -3
- package/.next/standalone/.next/server/app/_global-error.html +1 -1
- package/.next/standalone/.next/server/app/_global-error.rsc +1 -1
- package/.next/standalone/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_not-found.html +1 -1
- package/.next/standalone/.next/server/app/_not-found.rsc +1 -1
- package/.next/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/index.html +1 -1
- package/.next/standalone/.next/server/app/index.rsc +2 -2
- package/.next/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/index.segments/_full.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/index.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/index.segments/_index.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/index.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/page/react-loadable-manifest.json +3 -3
- package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/middleware-build-manifest.js +3 -3
- package/.next/standalone/.next/server/pages/404.html +1 -1
- package/.next/standalone/.next/server/pages/500.html +1 -1
- package/.next/standalone/.next/server/server-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/server-reference-manifest.json +1 -1
- package/.next/standalone/.next/static/chunks/002jt~~cq5_aa.js +1 -0
- package/.next/standalone/.next/static/chunks/{0.8j.kvn8ne6d.js → 09.y860--~17v.js} +1 -1
- package/.next/standalone/.next/static/chunks/0bvf78r89wjl0.js +88 -0
- package/.next/standalone/.next/static/chunks/{0~7hzg1mmjrhy.js → 0fv113zapqty~.js} +1 -1
- package/.next/standalone/.next/static/chunks/{0eb83nyqnlhcr.js → 0rggo3n729593.js} +1 -1
- package/.next/standalone/.next/static/chunks/{0jukf_wt2bw41.js → 0yrtklf4iuj86.js} +2 -2
- package/.next/standalone/.next/static/chunks/{0cwgfx0s41pzw.js → 18bi.u.xl8oib.js} +1 -1
- package/.next/standalone/.openboard/excalidraw-guide.md +314 -314
- package/.next/standalone/.openboard/hooks/pretool-guide.mjs +59 -59
- package/.next/standalone/.openboard/hooks/session-hint.mjs +12 -12
- package/.next/standalone/package.json +5 -23
- package/package.json +4 -23
- package/.next/standalone/.next/static/chunks/0r~o4w97q5-v9.js +0 -1
- package/.next/standalone/.next/static/chunks/0wh72i_pn1gx6.js +0 -88
- /package/.next/standalone/.next/static/{K6al_r4r7ce0W379tfIk2 → 9p_qtnWU8_sxf8umL_DVQ}/_buildManifest.js +0 -0
- /package/.next/standalone/.next/static/{K6al_r4r7ce0W379tfIk2 → 9p_qtnWU8_sxf8umL_DVQ}/_clientMiddlewareManifest.js +0 -0
- /package/.next/standalone/.next/static/{K6al_r4r7ce0W379tfIk2 → 9p_qtnWU8_sxf8umL_DVQ}/_ssgManifest.js +0 -0
|
@@ -1,59 +1,59 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
|
|
3
|
-
// PreToolUse hook — .openboard/board.json 접근 시 Excalidraw 가이드 주입
|
|
4
|
-
// 세션당 한 번만 주입 (dedup)
|
|
5
|
-
|
|
6
|
-
import { readFileSync, existsSync, writeFileSync, mkdirSync } from "fs";
|
|
7
|
-
import { join } from "path";
|
|
8
|
-
import { tmpdir } from "os";
|
|
9
|
-
import { createHash } from "crypto";
|
|
10
|
-
|
|
11
|
-
// stdin에서 tool 정보 읽기
|
|
12
|
-
let input = "";
|
|
13
|
-
process.stdin.setEncoding("utf8");
|
|
14
|
-
process.stdin.on("data", (chunk) => (input += chunk));
|
|
15
|
-
process.stdin.on("end", () => {
|
|
16
|
-
try {
|
|
17
|
-
const data = JSON.parse(input);
|
|
18
|
-
const toolName = data.tool_name;
|
|
19
|
-
const toolInput = data.tool_input || {};
|
|
20
|
-
|
|
21
|
-
// Read, Edit, Write 도구에서 파일 경로 추출
|
|
22
|
-
const filePath = toolInput.file_path || toolInput.command || "";
|
|
23
|
-
|
|
24
|
-
// .openboard/board.json 접근인지 확인
|
|
25
|
-
if (!filePath.includes(".openboard/board.json")) {
|
|
26
|
-
process.exit(0);
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
// 세션 dedup — 이미 주입했으면 스킵
|
|
30
|
-
const sessionId = process.env.SESSION_ID || "default";
|
|
31
|
-
const hash = createHash("sha256").update(sessionId).digest("hex").slice(0, 12);
|
|
32
|
-
const dedupDir = join(tmpdir(), "openboard-hooks");
|
|
33
|
-
const dedupFile = join(dedupDir, `${hash}.injected`);
|
|
34
|
-
|
|
35
|
-
if (existsSync(dedupFile)) {
|
|
36
|
-
process.exit(0);
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
// 가이드 파일 읽기
|
|
40
|
-
const cwd = process.env.OPENBOARD_CWD || process.cwd();
|
|
41
|
-
const guidePath = join(cwd, ".openboard", "excalidraw-guide.md");
|
|
42
|
-
|
|
43
|
-
if (!existsSync(guidePath)) {
|
|
44
|
-
process.exit(0);
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
const guide = readFileSync(guidePath, "utf8");
|
|
48
|
-
|
|
49
|
-
// dedup 마커 저장
|
|
50
|
-
mkdirSync(dedupDir, { recursive: true });
|
|
51
|
-
writeFileSync(dedupFile, new Date().toISOString());
|
|
52
|
-
|
|
53
|
-
// additionalContext로 가이드 주입
|
|
54
|
-
process.stdout.write(JSON.stringify({ additionalContext: guide }));
|
|
55
|
-
} catch {
|
|
56
|
-
// 파싱 실패 등은 조용히 무시
|
|
57
|
-
process.exit(0);
|
|
58
|
-
}
|
|
59
|
-
});
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
// PreToolUse hook — .openboard/board.json 접근 시 Excalidraw 가이드 주입
|
|
4
|
+
// 세션당 한 번만 주입 (dedup)
|
|
5
|
+
|
|
6
|
+
import { readFileSync, existsSync, writeFileSync, mkdirSync } from "fs";
|
|
7
|
+
import { join } from "path";
|
|
8
|
+
import { tmpdir } from "os";
|
|
9
|
+
import { createHash } from "crypto";
|
|
10
|
+
|
|
11
|
+
// stdin에서 tool 정보 읽기
|
|
12
|
+
let input = "";
|
|
13
|
+
process.stdin.setEncoding("utf8");
|
|
14
|
+
process.stdin.on("data", (chunk) => (input += chunk));
|
|
15
|
+
process.stdin.on("end", () => {
|
|
16
|
+
try {
|
|
17
|
+
const data = JSON.parse(input);
|
|
18
|
+
const toolName = data.tool_name;
|
|
19
|
+
const toolInput = data.tool_input || {};
|
|
20
|
+
|
|
21
|
+
// Read, Edit, Write 도구에서 파일 경로 추출
|
|
22
|
+
const filePath = toolInput.file_path || toolInput.command || "";
|
|
23
|
+
|
|
24
|
+
// .openboard/board.json 접근인지 확인
|
|
25
|
+
if (!filePath.includes(".openboard/board.json")) {
|
|
26
|
+
process.exit(0);
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
// 세션 dedup — 이미 주입했으면 스킵
|
|
30
|
+
const sessionId = process.env.SESSION_ID || "default";
|
|
31
|
+
const hash = createHash("sha256").update(sessionId).digest("hex").slice(0, 12);
|
|
32
|
+
const dedupDir = join(tmpdir(), "openboard-hooks");
|
|
33
|
+
const dedupFile = join(dedupDir, `${hash}.injected`);
|
|
34
|
+
|
|
35
|
+
if (existsSync(dedupFile)) {
|
|
36
|
+
process.exit(0);
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
// 가이드 파일 읽기
|
|
40
|
+
const cwd = process.env.OPENBOARD_CWD || process.cwd();
|
|
41
|
+
const guidePath = join(cwd, ".openboard", "excalidraw-guide.md");
|
|
42
|
+
|
|
43
|
+
if (!existsSync(guidePath)) {
|
|
44
|
+
process.exit(0);
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
const guide = readFileSync(guidePath, "utf8");
|
|
48
|
+
|
|
49
|
+
// dedup 마커 저장
|
|
50
|
+
mkdirSync(dedupDir, { recursive: true });
|
|
51
|
+
writeFileSync(dedupFile, new Date().toISOString());
|
|
52
|
+
|
|
53
|
+
// additionalContext로 가이드 주입
|
|
54
|
+
process.stdout.write(JSON.stringify({ additionalContext: guide }));
|
|
55
|
+
} catch {
|
|
56
|
+
// 파싱 실패 등은 조용히 무시
|
|
57
|
+
process.exit(0);
|
|
58
|
+
}
|
|
59
|
+
});
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
|
|
3
|
-
// SessionStart hook — openboard가 실행 중임을 Claude에게 알리는 최소 힌트
|
|
4
|
-
// 전체 Excalidraw 가이드는 board.json 접근 시에만 주입됨 (pretool-guide.mjs)
|
|
5
|
-
|
|
6
|
-
const hint = `# openboard
|
|
7
|
-
|
|
8
|
-
openboard 실행 중 (localhost:${process.env.PORT ?? "3333"}).
|
|
9
|
-
화이트보드에 그리려면 .openboard/board.json 을 읽고 쓰세요.
|
|
10
|
-
브라우저가 1초마다 폴링하므로 파일을 수정하면 자동 반영됩니다.`;
|
|
11
|
-
|
|
12
|
-
process.stdout.write(hint);
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
// SessionStart hook — openboard가 실행 중임을 Claude에게 알리는 최소 힌트
|
|
4
|
+
// 전체 Excalidraw 가이드는 board.json 접근 시에만 주입됨 (pretool-guide.mjs)
|
|
5
|
+
|
|
6
|
+
const hint = `# openboard
|
|
7
|
+
|
|
8
|
+
openboard 실행 중 (localhost:${process.env.PORT ?? "3333"}).
|
|
9
|
+
화이트보드에 그리려면 .openboard/board.json 을 읽고 쓰세요.
|
|
10
|
+
브라우저가 1초마다 폴링하므로 파일을 수정하면 자동 반영됩니다.`;
|
|
11
|
+
|
|
12
|
+
process.stdout.write(hint);
|
|
@@ -1,43 +1,25 @@
|
|
|
1
1
|
{
|
|
2
|
-
"name": "obc",
|
|
3
|
-
"version": "0.2.
|
|
2
|
+
"name": "obc-cli2",
|
|
3
|
+
"version": "0.2.6",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"bin": {
|
|
6
|
-
"
|
|
6
|
+
"obc-cli2": "./bin/openboard.js"
|
|
7
7
|
},
|
|
8
8
|
"files": [
|
|
9
9
|
"bin",
|
|
10
10
|
"templates",
|
|
11
11
|
".next/standalone"
|
|
12
12
|
],
|
|
13
|
-
"keywords": [
|
|
14
|
-
"excalidraw",
|
|
15
|
-
"whiteboard",
|
|
16
|
-
"claude",
|
|
17
|
-
"claude-code",
|
|
18
|
-
"plugin"
|
|
19
|
-
],
|
|
20
13
|
"scripts": {
|
|
21
14
|
"dev": "next dev -p 3333",
|
|
22
15
|
"build": "next build && node scripts/prepare.js",
|
|
23
16
|
"start": "next start",
|
|
24
|
-
"
|
|
25
|
-
"prepare": "node scripts/prepare.js"
|
|
17
|
+
"prepublishOnly": "npm run build && node scripts/prepare.js"
|
|
26
18
|
},
|
|
27
19
|
"dependencies": {
|
|
28
20
|
"@excalidraw/excalidraw": "^0.18.0",
|
|
29
21
|
"next": "16.2.1",
|
|
30
22
|
"react": "19.2.4",
|
|
31
23
|
"react-dom": "19.2.4"
|
|
32
|
-
},
|
|
33
|
-
"devDependencies": {
|
|
34
|
-
"@tailwindcss/postcss": "^4",
|
|
35
|
-
"@types/node": "^20",
|
|
36
|
-
"@types/react": "^19",
|
|
37
|
-
"@types/react-dom": "^19",
|
|
38
|
-
"eslint": "^9",
|
|
39
|
-
"eslint-config-next": "16.2.1",
|
|
40
|
-
"tailwindcss": "^4",
|
|
41
|
-
"typescript": "^5"
|
|
42
24
|
}
|
|
43
|
-
}
|
|
25
|
+
}
|
package/package.json
CHANGED
|
@@ -1,44 +1,25 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "obc-cli2",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.6",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"bin": {
|
|
6
|
-
"
|
|
6
|
+
"obc-cli2": "./bin/openboard.js"
|
|
7
7
|
},
|
|
8
8
|
"files": [
|
|
9
9
|
"bin",
|
|
10
10
|
"templates",
|
|
11
11
|
".next/standalone"
|
|
12
12
|
],
|
|
13
|
-
"keywords": [
|
|
14
|
-
"excalidraw",
|
|
15
|
-
"whiteboard",
|
|
16
|
-
"claude",
|
|
17
|
-
"claude-code",
|
|
18
|
-
"plugin"
|
|
19
|
-
],
|
|
20
13
|
"scripts": {
|
|
21
14
|
"dev": "next dev -p 3333",
|
|
22
15
|
"build": "next build && node scripts/prepare.js",
|
|
23
16
|
"start": "next start",
|
|
24
|
-
"
|
|
25
|
-
"prepare": "node scripts/prepare.js"
|
|
17
|
+
"prepublishOnly": "npm run build && node scripts/prepare.js"
|
|
26
18
|
},
|
|
27
19
|
"dependencies": {
|
|
28
20
|
"@excalidraw/excalidraw": "^0.18.0",
|
|
29
21
|
"next": "16.2.1",
|
|
30
|
-
"obc-cli2": "^0.2.0",
|
|
31
22
|
"react": "19.2.4",
|
|
32
23
|
"react-dom": "19.2.4"
|
|
33
|
-
},
|
|
34
|
-
"devDependencies": {
|
|
35
|
-
"@tailwindcss/postcss": "^4",
|
|
36
|
-
"@types/node": "^20",
|
|
37
|
-
"@types/react": "^19",
|
|
38
|
-
"@types/react-dom": "^19",
|
|
39
|
-
"eslint": "^9",
|
|
40
|
-
"eslint-config-next": "16.2.1",
|
|
41
|
-
"tailwindcss": "^4",
|
|
42
|
-
"typescript": "^5"
|
|
43
24
|
}
|
|
44
|
-
}
|
|
25
|
+
}
|