cdx-cli 0.1.0 → 0.1.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
@@ -36,7 +36,9 @@ cdx-cli run -w /Users/masao/project/my-app "テストを実行して失敗を直
36
36
  - `--instructions, -i <path>`: 追加指示を読み込むテキストファイル
37
37
  - `--trace-file <path>`: トレースJSONの出力先
38
38
  - `--agent-id <id>`: トレースへ記録する任意のエージェントID
39
+ - `--agent-type <type>`: トレースへ記録する任意のエージェント種別(自由入力)
39
40
  - `--model, -m <model>`: 使用モデルの上書き
41
+ - `--thinking <effort>`: 推論強度(`low|medium|high|xhigh`)
40
42
 
41
43
  ## 出力
42
44
 
@@ -1,12 +1,20 @@
1
1
  import { resolve } from "node:path";
2
2
  import { runSession } from "../core/session.js";
3
+ const REASONING_EFFORTS = new Set([
4
+ "low",
5
+ "medium",
6
+ "high",
7
+ "xhigh",
8
+ ]);
3
9
  /** CLI 引数をパースして RunOptions を生成 */
4
10
  export function parseRunArgs(args) {
5
11
  let workdir;
6
12
  let instructions;
7
13
  let traceFile;
8
14
  let agentId;
15
+ let agentType;
9
16
  let model;
17
+ let reasoningEffort;
10
18
  const positional = [];
11
19
  for (let i = 0; i < args.length; i++) {
12
20
  const arg = args[i];
@@ -25,10 +33,23 @@ export function parseRunArgs(args) {
25
33
  case "--agent-id":
26
34
  agentId = args[++i];
27
35
  break;
36
+ case "--agent-type":
37
+ agentType = args[++i];
38
+ break;
28
39
  case "--model":
29
40
  case "-m":
30
41
  model = args[++i];
31
42
  break;
43
+ case "--thinking":
44
+ case "--reasoning-effort": {
45
+ const next = args[++i];
46
+ if (!next || !REASONING_EFFORTS.has(next)) {
47
+ process.stderr.write("Error: --thinking must be one of low|medium|high|xhigh\n");
48
+ process.exit(1);
49
+ }
50
+ reasoningEffort = next;
51
+ break;
52
+ }
32
53
  default:
33
54
  if (!arg.startsWith("-")) {
34
55
  positional.push(arg);
@@ -50,7 +71,9 @@ export function parseRunArgs(args) {
50
71
  instructions: instructions ? resolve(instructions) : undefined,
51
72
  traceFile: traceFile ? resolve(traceFile) : undefined,
52
73
  agentId,
74
+ agentType,
53
75
  model,
76
+ reasoningEffort,
54
77
  prompt,
55
78
  };
56
79
  }
@@ -1 +1 @@
1
- {"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/commands/run.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/commands/run.ts"],"names":[],"mappings":"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"}
@@ -2,17 +2,19 @@ import { Codex } from "@openai/codex-sdk";
2
2
  import { createAccumulator, handleEvent } from "./event-handler.js";
3
3
  import { appendTrace, resolveTraceFilePath } from "./trace-writer.js";
4
4
  import { readFile } from "node:fs/promises";
5
+ import { readdir } from "node:fs/promises";
5
6
  import { execSync } from "node:child_process";
7
+ import { isAbsolute, relative } from "node:path";
6
8
  /** Codex セッションを実行し、結果を返す */
7
9
  export async function runSession(options) {
8
10
  const startTime = Date.now();
9
- const codex = new Codex({
10
- ...(options.model ? { config: { model: options.model } } : {}),
11
- });
11
+ const codex = new Codex();
12
12
  const thread = codex.startThread({
13
13
  workingDirectory: options.workdir,
14
14
  sandboxMode: "workspace-write",
15
15
  approvalPolicy: "never",
16
+ ...(options.model ? { model: options.model } : {}),
17
+ ...(options.reasoningEffort ? { modelReasoningEffort: options.reasoningEffort } : {}),
16
18
  });
17
19
  // プロンプト構築: instructions + タスク
18
20
  let prompt = options.prompt;
@@ -26,9 +28,16 @@ export async function runSession(options) {
26
28
  handleEvent(acc, event);
27
29
  }
28
30
  const durationMs = Date.now() - startTime;
31
+ // トレース書き込み先(このファイル自体は files_changed から除外したい)
32
+ const traceFilePath = options.traceFile ?? await resolveTraceFilePath(options.workdir);
33
+ const transcriptPath = await resolveTranscriptPath(acc.sessionId);
34
+ const excludedPaths = new Set();
35
+ const traceRelativePath = resolvePathRelativeToGitRoot(options.workdir, traceFilePath);
36
+ if (traceRelativePath)
37
+ excludedPaths.add(traceRelativePath);
29
38
  // git で実際の変更を検出(FileChangeItem だけでは shell 経由の変更を拾えない)
30
- const gitChanges = detectGitChanges(options.workdir);
31
- const filesChanged = mergeFileChanges(acc.filesChanged, gitChanges);
39
+ const gitChanges = detectGitChanges(options.workdir, excludedPaths);
40
+ const filesChanged = mergeFileChanges(acc.filesChanged, gitChanges).filter((c) => !excludedPaths.has(c.path));
32
41
  const result = {
33
42
  session_id: acc.sessionId ?? "unknown",
34
43
  status: acc.status,
@@ -36,13 +45,11 @@ export async function runSession(options) {
36
45
  final_response: acc.finalResponse,
37
46
  duration_ms: durationMs,
38
47
  };
39
- // トレース書き込み
40
- const traceFilePath = options.traceFile ?? await resolveTraceFilePath(options.workdir);
41
- const transcriptPath = resolveTranscriptPath(acc.sessionId);
42
48
  const traceEntry = {
43
49
  coding_agent: "codex",
44
50
  session_id: acc.sessionId ?? "unknown",
45
51
  agent_id: options.agentId ?? "",
52
+ agent_type: options.agentType ?? "",
46
53
  status: acc.status,
47
54
  files_changed: filesChanged,
48
55
  timestamp: new Date().toISOString(),
@@ -53,7 +60,7 @@ export async function runSession(options) {
53
60
  return result;
54
61
  }
55
62
  /** git status + diff で実際のファイル変更を検出 */
56
- function detectGitChanges(workdir) {
63
+ function detectGitChanges(workdir, excludedPaths) {
57
64
  try {
58
65
  // --porcelain=v1: M/A/D/?? をパース
59
66
  const output = execSync("git status --porcelain", {
@@ -65,6 +72,8 @@ function detectGitChanges(workdir) {
65
72
  return output.split("\n").map((line) => {
66
73
  const status = line.substring(0, 2).trim();
67
74
  const filePath = line.substring(3);
75
+ if (excludedPaths.has(filePath))
76
+ return null;
68
77
  let kind;
69
78
  switch (status) {
70
79
  case "D":
@@ -79,7 +88,7 @@ function detectGitChanges(workdir) {
79
88
  break;
80
89
  }
81
90
  return { path: filePath, kind };
82
- });
91
+ }).filter((c) => c !== null);
83
92
  }
84
93
  catch {
85
94
  return [];
@@ -97,8 +106,29 @@ function mergeFileChanges(sdkChanges, gitChanges) {
97
106
  }
98
107
  return merged;
99
108
  }
100
- /** Codex セッションの transcript パスを推定 */
101
- function resolveTranscriptPath(sessionId) {
109
+ function resolveGitToplevel(workdir) {
110
+ try {
111
+ const toplevel = execSync("git rev-parse --show-toplevel", {
112
+ cwd: workdir,
113
+ encoding: "utf-8",
114
+ }).trim();
115
+ return toplevel || null;
116
+ }
117
+ catch {
118
+ return null;
119
+ }
120
+ }
121
+ function resolvePathRelativeToGitRoot(workdir, absolutePath) {
122
+ const toplevel = resolveGitToplevel(workdir);
123
+ if (!toplevel)
124
+ return null;
125
+ const rel = relative(toplevel, absolutePath);
126
+ if (!rel || rel.startsWith("..") || isAbsolute(rel))
127
+ return null;
128
+ return rel.replaceAll("\\", "/");
129
+ }
130
+ /** Codex セッションの transcript パスを推定(可能なら該当jsonlを探す) */
131
+ async function resolveTranscriptPath(sessionId) {
102
132
  if (!sessionId)
103
133
  return "";
104
134
  const home = process.env["HOME"] ?? "";
@@ -106,6 +136,16 @@ function resolveTranscriptPath(sessionId) {
106
136
  const y = now.getFullYear();
107
137
  const m = String(now.getMonth() + 1).padStart(2, "0");
108
138
  const d = String(now.getDate()).padStart(2, "0");
109
- return `${home}/.codex/sessions/${y}/${m}/${d}`;
139
+ const dir = `${home}/.codex/sessions/${y}/${m}/${d}`;
140
+ try {
141
+ const entries = await readdir(dir, { withFileTypes: true });
142
+ const match = entries.find((e) => e.isFile() && e.name.endsWith(".jsonl") && e.name.includes(sessionId));
143
+ if (match)
144
+ return `${dir}/${match.name}`;
145
+ }
146
+ catch {
147
+ // ignore and fall back below
148
+ }
149
+ return dir;
110
150
  }
111
151
  //# sourceMappingURL=session.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/core/session.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/core/session.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -10,7 +10,9 @@ Options:
10
10
  --instructions, -i <path> Instructions file
11
11
  --trace-file <path> Trace output path
12
12
  --agent-id <id> Agent ID
13
+ --agent-type <type> Agent type (freeform)
13
14
  --model, -m <model> Model override
15
+ --thinking <effort> Model reasoning effort (low|medium|high|xhigh)
14
16
  `;
15
17
  async function main() {
16
18
  const args = process.argv.slice(2);
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAE/C,MAAM,KAAK,GAAG;;;;;;;;;;;CAWb,CAAC;AAEF,KAAK,UAAU,IAAI;IACjB,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACnC,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IAExB,IAAI,CAAC,OAAO,IAAI,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QACzD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC5B,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAChC,CAAC;IAED,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,KAAK;YACR,MAAM,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YAChC,MAAM;QACR;YACE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,oBAAoB,OAAO,OAAO,KAAK,EAAE,CAAC,CAAC;YAChE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;AACH,CAAC;AAED,IAAI,EAAE,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAE/C,MAAM,KAAK,GAAG;;;;;;;;;;;;;CAab,CAAC;AAEF,KAAK,UAAU,IAAI;IACjB,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACnC,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IAExB,IAAI,CAAC,OAAO,IAAI,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QACzD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC5B,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAChC,CAAC;IAED,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,KAAK;YACR,MAAM,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YAChC,MAAM;QACR;YACE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,oBAAoB,OAAO,OAAO,KAAK,EAAE,CAAC,CAAC;YAChE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;AACH,CAAC;AAED,IAAI,EAAE,CAAC"}
package/dist/types.d.ts CHANGED
@@ -1,11 +1,13 @@
1
- import type { ThreadEvent, ThreadItem, FileChangeItem, CommandExecutionItem, AgentMessageItem, Usage } from "@openai/codex-sdk";
1
+ import type { ThreadEvent, ThreadItem, FileChangeItem, CommandExecutionItem, AgentMessageItem, ModelReasoningEffort, Usage } from "@openai/codex-sdk";
2
2
  /** CLI run コマンドのオプション */
3
3
  export interface RunOptions {
4
4
  workdir: string;
5
5
  instructions?: string;
6
6
  traceFile?: string;
7
7
  agentId?: string;
8
+ agentType?: string;
8
9
  model?: string;
10
+ reasoningEffort?: ModelReasoningEffort;
9
11
  prompt: string;
10
12
  }
11
13
  /** ファイル変更記録 */
@@ -26,6 +28,7 @@ export interface TraceEntry {
26
28
  coding_agent: string;
27
29
  session_id: string;
28
30
  agent_id: string;
31
+ agent_type: string;
29
32
  status: "completed" | "failed";
30
33
  files_changed: FileChange[];
31
34
  timestamp: string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cdx-cli",
3
- "version": "0.1.0",
3
+ "version": "0.1.2",
4
4
  "description": "Codex SDK wrapper CLI for local coding tasks",
5
5
  "license": "MIT",
6
6
  "type": "module",