axmap-cli 1.3.2 → 1.3.3

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.ko.md CHANGED
@@ -24,6 +24,10 @@ axmap setup
24
24
  MCP를 사용하려면 설정 후 AI 도구를 다시 시작한다.
25
25
  함께 작업하는 사람과 에이전트는 같은 원격 장부를 사용해야 서로의 선점을 볼 수 있다.
26
26
 
27
+ ## 1.3.3: Windows Codex 등록 오류 수정
28
+
29
+ Windows에서 npm으로 설치한 Codex도 `axmap setup`으로 정상 등록한다. 셸 실행 파일 대신 패키지의 Node 진입점을 직접 실행해 경로와 인수를 그대로 전달한다.
30
+
27
31
  ## 1.3.2: 쪽지 표시 이름과 사용자 자동 공유
28
32
 
29
33
  대화형 `setup`에서 `장효준`, `John Smith`처럼 쪽지에 표시할 이름을 입력한다. 입력 없이 설정하거나 오타를 고치려면 `axmap setup --name "장효준"`을 실행한다. 재설치할 때는 저장된 이름을 유지하며 Git 이름·이메일 설정은 바꾸지 않는다.
package/README.md CHANGED
@@ -32,6 +32,10 @@ Use `axmap bus contacts` to list known names and email addresses. Messages sent
32
32
 
33
33
  See [docs/INSTALL.md](https://github.com/rl2aderjoon/axmap/blob/main/docs/INSTALL.md) for installation and configuration details (Korean).
34
34
 
35
+ ## 1.3.3: Windows Codex registration fix
36
+
37
+ `axmap setup` now registers Codex correctly when Codex is installed through npm on Windows. It launches the package's Node entry directly, preserving paths and arguments without a shell.
38
+
35
39
  ## Global setup and automatic repositories in 1.3.1
36
40
 
37
41
  Set up axMap once, then open Codex or another AI CLI in any Git repository. axMap selects that session's repository and prepares its ledger on the first status or claim request. There is no per-repository `axmap init` step.
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "//name": "🔴 npm 의 'axmap' 은 2022년부터 남이 쓰고 있는 다른 꾸러미다(leozin_ 의 Map 라이브러리, 1.1.2). 그래서 `npx axmap` 은 우리 것이 아니고, 누구에게도 그렇게 안내하면 안 된다. 2026-08-28 에 axmap-cli 로 정했다 — 스코프(@사용자/이름)를 쓰지 않는 이유는 스코프가 npm 계정 이름에 묶여서 나중에 팀이나 조직으로 옮길 때 이름이 통째로 바뀌기 때문이다. 사람이 치는 **명령** 이름은 그대로 axmap 이다 (아래 bin) — 꾸러미 이름과 명령 이름은 달라도 된다.",
3
3
  "name": "axmap-cli",
4
- "version": "1.3.2",
4
+ "version": "1.3.3",
5
5
  "//private": "🔴 여기 있던 \"private\": true 를 2026-08-28 에 지웠다. 그 줄이 있는 동안 npm publish 는 거부됐다. 되돌리려면 다시 넣으면 되지만, 이미 올라간 버전은 그래도 안 사라진다 — npm 은 같은 번호를 덮어쓰지 못하고 삭제도 72시간 안에만 된다. 즉 이 줄을 되살리는 것은 '앞으로 안 올린다' 는 뜻이지 '올린 것을 없앤다' 는 뜻이 아니다.",
6
6
  "//publishConfig": "axmap-cli 는 스코프가 없어서 기본이 이미 공개다. 즉 지금은 없어도 된다. 그래도 남겨 두는 이유: 나중에 @조직/axmap 처럼 스코프를 붙이는 날 이 줄이 없으면 publish 가 '유료 플랜이 필요하다'는 엉뚱한 말로 실패한다.",
7
7
  "publishConfig": {
@@ -266,8 +266,27 @@ function snippetJson() {
266
266
  // 🔴 TOML 을 직접 파싱하지 않는다. 파서를 새로 짜는 것은 이 저장소의 "의존성 없음" 과
267
267
  // "판정을 복잡하게 만들지 않는다" 에 둘 다 어긋나고, 어설픈 파서가 남의 config.toml 을
268
268
  // 깨뜨리는 것이 이 작업에서 나올 수 있는 최악의 결과다. 쓰는 일은 codex 자신에게 맡긴다.
269
+ // Windows npm installs expose a shell script and .cmd shim, neither of which
270
+ // spawnSync can execute directly. Launch the package's declared Node entry
271
+ // without a shell so paths and environment values keep their exact contents.
272
+ export function codexInvocation(bin, platform = process.platform) {
273
+ if (platform === 'win32' && !/\.exe$/i.test(bin)) {
274
+ const packageDir = path.join(path.dirname(bin), 'node_modules', '@openai', 'codex')
275
+ try {
276
+ const pkg = JSON.parse(fs.readFileSync(path.join(packageDir, 'package.json'), 'utf8'))
277
+ const entry = typeof pkg.bin === 'string' ? pkg.bin : pkg.bin?.codex
278
+ if (entry) {
279
+ const script = path.resolve(packageDir, entry)
280
+ if (fs.statSync(script).isFile()) return [process.execPath, script]
281
+ }
282
+ } catch { /* Non-npm installations continue to use their original binary. */ }
283
+ }
284
+ return [bin]
285
+ }
286
+
269
287
  export function doCodex(bin, { run: injectedRun, dry = DRY } = {}) {
270
- const run = injectedRun ?? ((args) => spawnSync(bin, args, { cwd: os.homedir(), encoding: 'utf8', windowsHide: true }))
288
+ const [command, ...prefix] = codexInvocation(bin)
289
+ const run = injectedRun ?? ((args) => spawnSync(command, [...prefix, ...args], { cwd: os.homedir(), encoding: 'utf8', windowsHide: true }))
271
290
 
272
291
  const help = run(['mcp', '--help'])
273
292
  if (help.status !== 0 || !/\badd\b/.test(`${help.stdout}${help.stderr}`)) {