@litfamily/litopencode 1.0.6 → 1.0.7
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/CHANGELOG.md +5 -0
- package/README-Ko-KR.md +30 -30
- package/README.md +29 -29
- package/dist/cli/auto-update.d.ts +8 -0
- package/dist/cli/auto-update.js +25 -4
- package/docs/assets/readme/badge-version.svg +1 -1
- package/docs/reference.md +4 -1
- package/package.json +1 -1
- package/tools/version-manifests.json +6 -0
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,11 @@ are tracked separately from this product history.
|
|
|
5
5
|
|
|
6
6
|
## Unreleased
|
|
7
7
|
|
|
8
|
+
## 1.0.7
|
|
9
|
+
|
|
10
|
+
- Run the automatic update's staged installer on Node instead of the OpenCode host binary, so a new release no longer rolls back and leaves the plugin unloaded.
|
|
11
|
+
- Keep `~/.litopencode/` owner-only instead of refusing a directory created world-readable by earlier state writers, and load the current install when the state directory is unusable.
|
|
12
|
+
|
|
8
13
|
## 1.0.6
|
|
9
14
|
|
|
10
15
|
- Ask about competing visual directions the brief leaves open instead of silently applying an announced default.
|
package/README-Ko-KR.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
<p align="center"><picture><source media="(prefers-reduced-motion: reduce)" srcset="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.
|
|
2
|
-
<p align="center"><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.
|
|
1
|
+
<p align="center"><picture><source media="(prefers-reduced-motion: reduce)" srcset="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.7/docs/assets/cover-motion-still.webp" /><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.7/docs/assets/cover-motion.webp" width="100%" alt="LITOPENCODE 워드마크 위 궤도를 라임 신호가 지나가는 표지입니다. 움직임 줄이기를 선호하면 이 표지의 정지 프레임을 표시합니다." /></picture></p>
|
|
2
|
+
<p align="center"><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.7/docs/assets/cover.webp" width="100%" alt="LITFAMILY와 KEEP THE WORK LIT. 문구 아래에 모인 다섯 로봇 크루." /></p>
|
|
3
3
|
|
|
4
|
-
<p align="center"><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.
|
|
4
|
+
<p align="center"><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.7/docs/assets/readme/ascii-readme.svg" width="480" alt="LIT ASCII B 마크" /></p>
|
|
5
5
|
|
|
6
6
|
<details>
|
|
7
7
|
<summary>ASCII 로고 복사</summary>
|
|
@@ -33,21 +33,21 @@
|
|
|
33
33
|
|
|
34
34
|
# LitOpenCode
|
|
35
35
|
|
|
36
|
-
[English](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.
|
|
36
|
+
[English](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.7/README.md) · [한국어](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.7/README-Ko-KR.md)
|
|
37
37
|
|
|
38
38
|
> **불씨를 건네받았다.**<br>
|
|
39
39
|
> **이제, 당신의 작업에 옮길 차례다.**
|
|
40
40
|
|
|
41
|
-
<p align="center"><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.
|
|
42
|
-
<p align="center"><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.
|
|
41
|
+
<p align="center"><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.7/docs/assets/readme/litopencode-wordmark.svg" width="480" alt="LITOPENCODE 디스플레이 타입" /></p>
|
|
42
|
+
<p align="center"><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.7/docs/assets/readme/litopencode-clay-icon.png" width="160" alt="LitOpenCode 클레이 마크" /></p>
|
|
43
43
|
|
|
44
44
|
<p align="center">
|
|
45
|
-
<a href="#설치"><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.
|
|
46
|
-
<a href="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.
|
|
45
|
+
<a href="#설치"><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.7/docs/assets/readme/badge-version.svg" alt="1.0.7" /></a>
|
|
46
|
+
<a href="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.7/LICENSE"><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.7/docs/assets/readme/badge-license.svg" alt="MIT 라이선스" /></a>
|
|
47
47
|
</p>
|
|
48
48
|
|
|
49
49
|
<p align="center">
|
|
50
|
-
<a href="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.
|
|
50
|
+
<a href="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.7/docs/reference-Ko-KR.md"><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.7/docs/assets/readme/lucide-book-open.svg" width="16" alt="" /> 문서</a> <a href="#설치">설치</a> <a href="#ignition-motion"><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.7/docs/assets/readme/lucide-play.svg" width="16" alt="" /> Ignition</a> <a href="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.7/LICENSE"><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.7/docs/assets/readme/lucide-shield-check.svg" width="16" alt="" /> MIT</a>
|
|
51
51
|
</p>
|
|
52
52
|
|
|
53
53
|
## LitOpenCode란
|
|
@@ -79,9 +79,9 @@ npm exec --package @litfamily/litopencode@latest -- litopencode install --yes
|
|
|
79
79
|
설치 도구는 OpenCode 설정 루트에 플러그인과 native 명령·스킬 파일을 등록합니다.
|
|
80
80
|
route 파일은 `~/.config/opencode/litopencode.json`이며 `XDG_CONFIG_HOME`을 지정하면
|
|
81
81
|
설정 루트가 달라집니다. 기존 custom route는 사용자 소유로 유지됩니다.
|
|
82
|
-
custom root, 모델 선택, 터미널 정책, 무인 설치는 [상세 안내](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.
|
|
82
|
+
custom root, 모델 선택, 터미널 정책, 무인 설치는 [상세 안내](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.7/docs/reference-Ko-KR.md#설치)를 참고하세요.
|
|
83
83
|
|
|
84
|
-
이 checkout의 패키지는 `@litfamily/litopencode@1.0.
|
|
84
|
+
이 checkout의 패키지는 `@litfamily/litopencode@1.0.7`입니다. registry의 `@latest`는 다를 수 있으므로
|
|
85
85
|
정확한 버전이 필요하면 `npm view @litfamily/litopencode version`으로 확인하세요.
|
|
86
86
|
|
|
87
87
|
## 처음 사용하기
|
|
@@ -136,9 +136,9 @@ primitive가 없으므로 이 프로젝트별 로컬 기록으로 작업을 재
|
|
|
136
136
|
|
|
137
137
|
Lit 경로가 활성화되면 답변이 굵은 점화 문구로 시작합니다. 플러그인은 글리프를 지원하는 환경에서 다섯 줄의 micro 로고와 마지막 `🔥 LIT IGNITED · <discipline> 🔥` 문구를 6초 동안 경고 토스트로 표시하도록 요청합니다. 글리프를 지원하지 않으면 문구만 표시합니다.
|
|
138
138
|
|
|
139
|
-
<p align="center"><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.
|
|
139
|
+
<p align="center"><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.7/docs/assets/litopencode-ignition-1600.webp" width="48%" alt="LitOpenCode 점화 장치" /><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.7/docs/assets/litopencode-continuity-1600.webp" width="48%" alt="LitOpenCode 연속 장치" /></p>
|
|
140
140
|
|
|
141
|
-
<p align="center"><a href="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.
|
|
141
|
+
<p align="center"><a href="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.7/docs/assets/readme/ignition-film.mp4"><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.7/docs/assets/readme/poster.png" width="720" alt="Ignition 모션 포스터" /></a></p>
|
|
142
142
|
|
|
143
143
|
포스터를 선택하면 선택형 영상을 엽니다. README에서 자동 재생하지 않습니다.
|
|
144
144
|
|
|
@@ -210,9 +210,9 @@ canonical 경로를 사용합니다. 번호가 붙은 license·provenance 파일
|
|
|
210
210
|
| `/lit-korean` | 의미를 유지하며 한국어 문장 다듬기 |
|
|
211
211
|
| `/lit-scientific-visualization` | 패키지에 포함된 과학 시각화 워크플로 |
|
|
212
212
|
|
|
213
|
-
Autoresearch, Autoconference, Wikify, UI/UX는 [전체 경로 안내](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.
|
|
214
|
-
두 가지 rule 처리 경로는 [규칙 엔진 상세 안내](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.
|
|
215
|
-
이전 스킬 이름은 한 릴리스 동안 별칭으로 연결됩니다. [마이그레이션 안내](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.
|
|
213
|
+
Autoresearch, Autoconference, Wikify, UI/UX는 [전체 경로 안내](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.7/docs/reference-Ko-KR.md#주요-명령)에,
|
|
214
|
+
두 가지 rule 처리 경로는 [규칙 엔진 상세 안내](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.7/docs/reference.md#safety-and-updates)에서 확인하세요.
|
|
215
|
+
이전 스킬 이름은 한 릴리스 동안 별칭으로 연결됩니다. [마이그레이션 안내](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.7/docs/migration.md#skill-id-renames)를 확인하세요.
|
|
216
216
|
|
|
217
217
|
## 안전과 업데이트
|
|
218
218
|
|
|
@@ -223,7 +223,7 @@ Autoresearch, Autoconference, Wikify, UI/UX는 [전체 경로 안내](https://cd
|
|
|
223
223
|
`--no-auto-update` 또는 `LITOPENCODE_NO_AUTO_UPDATE=1`로 자동 업데이트를 끌 수 있습니다.
|
|
224
224
|
- 스킬 학습 결과는 명시적인 apply 명령이 있어야 반영됩니다. 학습의 review·변경·rollback·curator는
|
|
225
225
|
POSIX를 지원하며 Windows에서는 해당 경계를 차단합니다. 설치, doctor, 수동 조회에는
|
|
226
|
-
이 제한이 적용되지 않습니다. [학습 루프 상세 안내](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.
|
|
226
|
+
이 제한이 적용되지 않습니다. [학습 루프 상세 안내](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.7/docs/reference.md#skill-learning-loop).
|
|
227
227
|
|
|
228
228
|
## 문제 해결
|
|
229
229
|
|
|
@@ -235,12 +235,12 @@ Autoresearch, Autoconference, Wikify, UI/UX는 [전체 경로 안내](https://cd
|
|
|
235
235
|
npm exec --package @litfamily/litopencode@latest -- litopencode doctor
|
|
236
236
|
```
|
|
237
237
|
|
|
238
|
-
[설치와 모델 설정 안내](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.
|
|
238
|
+
[설치와 모델 설정 안내](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.7/docs/reference-Ko-KR.md#설치)를 참고하세요.
|
|
239
239
|
|
|
240
240
|
`install`과 `doctor`는 `<root>/skills`가 심볼릭 링크일 때 그 사실과 git 저장소 경고를
|
|
241
241
|
보고하며, `~/.agents/skills`, `~/.claude/skills`, 프로젝트 스킬 디렉토리에 같은 이름의
|
|
242
242
|
스킬이 있으면 함께 알려줍니다. 자세한 내용은
|
|
243
|
-
[심볼릭 링크된 native 스킬 루트와 다른 위치의 같은 이름 스킬](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.
|
|
243
|
+
[심볼릭 링크된 native 스킬 루트와 다른 위치의 같은 이름 스킬](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.7/docs/reference-Ko-KR.md#심볼릭-링크된-native-스킬-루트와-다른-위치의-같은-이름-스킬)을
|
|
244
244
|
참고하세요.
|
|
245
245
|
|
|
246
246
|
## 제거
|
|
@@ -256,7 +256,7 @@ npm uninstall -g @litfamily/litopencode
|
|
|
256
256
|
설치된 명령·스킬 파일은 소유 관계를 확인한 뒤 설치 도구가 관리하는 복사본만 제거하세요.
|
|
257
257
|
사용자가 만든 파일과 수정 내용은 보존합니다. route가 필요하면 `litopencode.json`을,
|
|
258
258
|
작업을 재개할 계획이라면 프로젝트의 `.litopencode/` 기록을 남기세요. 제거 후 OpenCode를
|
|
259
|
-
재시작합니다. [제거 상세 안내](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.
|
|
259
|
+
재시작합니다. [제거 상세 안내](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.7/docs/reference-Ko-KR.md#제거).
|
|
260
260
|
|
|
261
261
|
## 라이선스
|
|
262
262
|
|
|
@@ -266,25 +266,25 @@ MIT
|
|
|
266
266
|
|
|
267
267
|
### 문서
|
|
268
268
|
|
|
269
|
-
- [워크플로 상세 안내](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.
|
|
270
|
-
- [English reference](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.
|
|
271
|
-
- [마이그레이션 안내](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.
|
|
272
|
-
- [터미널 마크와 활성화 확인 문구](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.
|
|
273
|
-
- [Changelog](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.
|
|
269
|
+
- [워크플로 상세 안내](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.7/docs/reference-Ko-KR.md): 모델, 권한, host 연결, 명령, 검증 방법
|
|
270
|
+
- [English reference](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.7/docs/reference.md): 전체 스킬 목록, 학습 루프, 규칙 엔진 포함
|
|
271
|
+
- [마이그레이션 안내](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.7/docs/migration.md)
|
|
272
|
+
- [터미널 마크와 활성화 확인 문구](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.7/docs/lit-mark.md)
|
|
273
|
+
- [Changelog](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.7/CHANGELOG.md)
|
|
274
274
|
- 출시 담당자 체크리스트 (저장소 전용)
|
|
275
275
|
|
|
276
|
-
- [기여 안내](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.
|
|
277
|
-
- [행동 규범](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.
|
|
276
|
+
- [기여 안내](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.7/CONTRIBUTING.md) · [지원](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.7/SUPPORT.md) · [보안 제보](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.7/SECURITY.md)
|
|
277
|
+
- [행동 규범](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.7/CODE_OF_CONDUCT.md) · [개인정보와 네트워크 동작](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.7/docs/privacy.md)
|
|
278
278
|
|
|
279
279
|
### LITFAMILY
|
|
280
280
|
|
|
281
|
-

|
|
282
282
|
|
|
283
283
|
LitClaude · LitHermes · LitCodex · LitOpenCode · LitGrok.
|
|
284
284
|
다섯 중장갑 머신으로 다섯 제품을 표현한 일러스트입니다. 각 제품은 자신이 지원하는 도구에서 독립적으로 동작합니다.
|
|
285
285
|
|
|
286
286
|
### Ignition motion
|
|
287
287
|
|
|
288
|
-
[](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.7/docs/assets/readme/ignition-film.mp4)
|
|
289
289
|
|
|
290
|
-
[10초 영상 보기](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.
|
|
290
|
+
[10초 영상 보기](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.7/docs/assets/readme/ignition-film.mp4) · [애니메이션 GIF](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.7/docs/assets/readme/ignition-readme.gif) · [Lucide 아이콘 라이선스](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.7/docs/assets/readme/Lucide-LICENSE.txt) · [ASCII 글꼴 라이선스](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.7/docs/assets/readme/JetBrainsMono-OFL.txt)
|
package/README.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
<p align="center"><picture><source media="(prefers-reduced-motion: reduce)" srcset="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.
|
|
2
|
-
<p align="center"><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.
|
|
1
|
+
<p align="center"><picture><source media="(prefers-reduced-motion: reduce)" srcset="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.7/docs/assets/cover-motion-still.webp" /><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.7/docs/assets/cover-motion.webp" width="100%" alt="LitOpenCode cover art. A lime signal traces orbital paths above the OPENCODE wordmark. Reduced-motion users see a still frame from this cover." /></picture></p>
|
|
2
|
+
<p align="center"><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.7/docs/assets/cover.webp" width="100%" alt="Five robots beneath the LITFAMILY and KEEP THE WORK LIT. lettering." /></p>
|
|
3
3
|
|
|
4
|
-
<p align="center"><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.
|
|
4
|
+
<p align="center"><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.7/docs/assets/readme/ascii-readme.svg" width="480" alt="LIT ASCII B mark" /></p>
|
|
5
5
|
|
|
6
6
|
<details>
|
|
7
7
|
<summary>Copy ASCII logo</summary>
|
|
@@ -33,20 +33,20 @@
|
|
|
33
33
|
|
|
34
34
|
# LitOpenCode
|
|
35
35
|
|
|
36
|
-
[English](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.
|
|
36
|
+
[English](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.7/README.md) · [한국어](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.7/README-Ko-KR.md)
|
|
37
37
|
|
|
38
38
|
**Keep the work lit.**
|
|
39
39
|
|
|
40
|
-
<p align="center"><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.
|
|
41
|
-
<p align="center"><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.
|
|
40
|
+
<p align="center"><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.7/docs/assets/readme/litopencode-wordmark.svg" width="480" alt="LITOPENCODE display type" /></p>
|
|
41
|
+
<p align="center"><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.7/docs/assets/readme/litopencode-clay-icon.png" width="160" alt="LitOpenCode clay mark" /></p>
|
|
42
42
|
|
|
43
43
|
<p align="center">
|
|
44
|
-
<a href="#install"><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.
|
|
45
|
-
<a href="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.
|
|
44
|
+
<a href="#install"><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.7/docs/assets/readme/badge-version.svg" alt="1.0.7" /></a>
|
|
45
|
+
<a href="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.7/LICENSE"><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.7/docs/assets/readme/badge-license.svg" alt="MIT license" /></a>
|
|
46
46
|
</p>
|
|
47
47
|
|
|
48
48
|
<p align="center">
|
|
49
|
-
<a href="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.
|
|
49
|
+
<a href="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.7/docs/reference.md"><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.7/docs/assets/readme/lucide-book-open.svg" width="16" alt="" /> Docs</a> <a href="#install">Install</a> <a href="#ignition-motion"><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.7/docs/assets/readme/lucide-play.svg" width="16" alt="" /> Ignition</a> <a href="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.7/LICENSE"><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.7/docs/assets/readme/lucide-shield-check.svg" width="16" alt="" /> MIT</a>
|
|
50
50
|
</p>
|
|
51
51
|
|
|
52
52
|
## What is LitOpenCode
|
|
@@ -76,10 +76,10 @@ npm exec --package @litfamily/litopencode@latest -- litopencode install --yes
|
|
|
76
76
|
Installation registers the plugin and native command/skill files under your OpenCode
|
|
77
77
|
config root. Routes live in `~/.config/opencode/litopencode.json`; `XDG_CONFIG_HOME`
|
|
78
78
|
changes that root. Existing custom routes remain user-owned. See the
|
|
79
|
-
[installation and model reference](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.
|
|
79
|
+
[installation and model reference](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.7/docs/reference.md#install) for custom roots,
|
|
80
80
|
provider choices, terminal policy, and unattended setup.
|
|
81
81
|
|
|
82
|
-
This checkout is `@litfamily/litopencode@1.0.
|
|
82
|
+
This checkout is `@litfamily/litopencode@1.0.7`. Registry `@latest` can differ; inspect it with
|
|
83
83
|
`npm view @litfamily/litopencode version` when an exact version matters.
|
|
84
84
|
|
|
85
85
|
## First use
|
|
@@ -134,9 +134,9 @@ Use `lit` or `/lit` to start a bounded task; `handoff` or `/lit-handoff` carries
|
|
|
134
134
|
|
|
135
135
|
When a Lit route activates, the reply starts with a bold ignition line. The plugin requests a six-second warning toast with five micro-logo rows and a final `🔥 LIT IGNITED · <discipline> 🔥` line when the environment supports mark glyphs; otherwise, it shows only that line.
|
|
136
136
|
|
|
137
|
-
<p align="center"><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.
|
|
137
|
+
<p align="center"><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.7/docs/assets/litopencode-ignition-1600.webp" width="48%" alt="LitOpenCode ignition apparatus" /><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.7/docs/assets/litopencode-continuity-1600.webp" width="48%" alt="LitOpenCode continuity apparatus" /></p>
|
|
138
138
|
|
|
139
|
-
<p align="center"><a href="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.
|
|
139
|
+
<p align="center"><a href="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.7/docs/assets/readme/ignition-film.mp4"><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.7/docs/assets/readme/poster.png" width="720" alt="Ignition motion poster" /></a></p>
|
|
140
140
|
|
|
141
141
|
The poster opens the optional film; this README keeps motion opt-in.
|
|
142
142
|
|
|
@@ -206,9 +206,9 @@ remain source-attribution records.
|
|
|
206
206
|
| `/lit-korean` | Improve Korean prose without changing its meaning. |
|
|
207
207
|
| `/lit-scientific-visualization` | Use the packaged scientific-visualization workflow. |
|
|
208
208
|
|
|
209
|
-
The [full route and skill reference](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.
|
|
209
|
+
The [full route and skill reference](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.7/docs/reference.md#core-commands) covers
|
|
210
210
|
Autoresearch, Autoconference, Wikify, UI/UX, and the two-lane repository rules engine.
|
|
211
|
-
[Migration notes](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.
|
|
211
|
+
[Migration notes](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.7/docs/migration.md#skill-id-renames) explain the one-release skill aliases.
|
|
212
212
|
|
|
213
213
|
## Safety and updates
|
|
214
214
|
|
|
@@ -219,7 +219,7 @@ Autoresearch, Autoconference, Wikify, UI/UX, and the two-lane repository rules e
|
|
|
219
219
|
check. Use `--no-auto-update` or `LITOPENCODE_NO_AUTO_UPDATE=1` to disable automatic updates.
|
|
220
220
|
- Skill learning requires an explicit apply command. Its review, mutation, rollback, and
|
|
221
221
|
curator boundaries support POSIX; on Windows those boundaries fail closed. Install,
|
|
222
|
-
doctor, and passive surfaces remain available. [Learning-loop details](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.
|
|
222
|
+
doctor, and passive surfaces remain available. [Learning-loop details](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.7/docs/reference.md#skill-learning-loop).
|
|
223
223
|
|
|
224
224
|
## Troubleshooting
|
|
225
225
|
|
|
@@ -231,12 +231,12 @@ Inspect package and configuration health with:
|
|
|
231
231
|
npm exec --package @litfamily/litopencode@latest -- litopencode doctor
|
|
232
232
|
```
|
|
233
233
|
|
|
234
|
-
See the [installation and model reference](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.
|
|
234
|
+
See the [installation and model reference](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.7/docs/reference.md#install).
|
|
235
235
|
|
|
236
236
|
Install and `doctor` report when `<root>/skills` is a symlink (and its git-repository
|
|
237
237
|
warning) and any same-named skill shadowing it in `~/.agents/skills`, `~/.claude/skills`,
|
|
238
238
|
or a project skills directory. See
|
|
239
|
-
[symlinked native skills root and shadow copies](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.
|
|
239
|
+
[symlinked native skills root and shadow copies](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.7/docs/reference.md#symlinked-native-skills-root-and-shadow-copies).
|
|
240
240
|
|
|
241
241
|
## Uninstall
|
|
242
242
|
|
|
@@ -252,7 +252,7 @@ npm uninstall -g @litfamily/litopencode
|
|
|
252
252
|
Review installed command/skill files before removing installer-owned copies; preserve
|
|
253
253
|
user-created files and edits. Keep `litopencode.json` if you still need its routes, and
|
|
254
254
|
keep project `.litopencode/` ledgers if you plan to resume. Restart OpenCode after removal.
|
|
255
|
-
See the [removal reference](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.
|
|
255
|
+
See the [removal reference](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.7/docs/reference.md#remove).
|
|
256
256
|
|
|
257
257
|
## License
|
|
258
258
|
|
|
@@ -262,25 +262,25 @@ MIT
|
|
|
262
262
|
|
|
263
263
|
### Documentation
|
|
264
264
|
|
|
265
|
-
- [Workflow reference](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.
|
|
266
|
-
- [한국어 상세 안내](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.
|
|
267
|
-
- [Migration notes](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.
|
|
268
|
-
- [Terminal mark and activation probes](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.
|
|
269
|
-
- [Changelog](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.
|
|
265
|
+
- [Workflow reference](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.7/docs/reference.md): models, permissions, host hooks, all skills, learning loop, and reproducible verification.
|
|
266
|
+
- [한국어 상세 안내](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.7/docs/reference-Ko-KR.md)
|
|
267
|
+
- [Migration notes](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.7/docs/migration.md)
|
|
268
|
+
- [Terminal mark and activation probes](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.7/docs/lit-mark.md)
|
|
269
|
+
- [Changelog](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.7/CHANGELOG.md)
|
|
270
270
|
- Maintainer release checklist (repository only)
|
|
271
271
|
|
|
272
|
-
- [Contributing](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.
|
|
273
|
-
- [Code of conduct](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.
|
|
272
|
+
- [Contributing](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.7/CONTRIBUTING.md) · [Support](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.7/SUPPORT.md) · [Security](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.7/SECURITY.md)
|
|
273
|
+
- [Code of conduct](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.7/CODE_OF_CONDUCT.md) · [Privacy and network behavior](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.7/docs/privacy.md)
|
|
274
274
|
|
|
275
275
|
### LITFAMILY
|
|
276
276
|
|
|
277
|
-

|
|
278
278
|
|
|
279
279
|
LitClaude · LitHermes · LitCodex · LitOpenCode · LitGrok.
|
|
280
280
|
Five armored machines for five independent products, each working in its own host.
|
|
281
281
|
|
|
282
282
|
### Ignition motion
|
|
283
283
|
|
|
284
|
-
[](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.7/docs/assets/readme/ignition-film.mp4)
|
|
285
285
|
|
|
286
|
-
[Watch the 10-second film](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.
|
|
286
|
+
[Watch the 10-second film](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.7/docs/assets/readme/ignition-film.mp4) · [Animated GIF](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.7/docs/assets/readme/ignition-readme.gif) · [Lucide icon license](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.7/docs/assets/readme/Lucide-LICENSE.txt) · [ASCII font license](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.7/docs/assets/readme/JetBrainsMono-OFL.txt)
|
|
@@ -49,6 +49,8 @@ export type AutoUpdateOptions = {
|
|
|
49
49
|
readonly env?: NodeJS.ProcessEnv;
|
|
50
50
|
readonly argv?: readonly string[];
|
|
51
51
|
readonly fetchLatestVersion?: () => Promise<string>;
|
|
52
|
+
/** Runtime for the staged CLI; defaults to {@link childNodeExecutable}. */
|
|
53
|
+
readonly nodeExecutable?: string;
|
|
52
54
|
readonly runCommand?: (command: string, args: readonly string[], options: AutoUpdateCommandOptions) => Promise<CommandOutput>;
|
|
53
55
|
};
|
|
54
56
|
type DoctorReceipt = {
|
|
@@ -81,6 +83,12 @@ type AutoUpdateReceipt = {
|
|
|
81
83
|
readonly error?: string;
|
|
82
84
|
};
|
|
83
85
|
};
|
|
86
|
+
/**
|
|
87
|
+
* The staged CLI needs Node. Inside OpenCode the plugin runs on a Bun-compiled
|
|
88
|
+
* host binary, and process.execPath names that binary rather than a Node
|
|
89
|
+
* runtime, so fall back to `node` on PATH there.
|
|
90
|
+
*/
|
|
91
|
+
export declare function childNodeExecutable(execPath?: string, versions?: NodeJS.ProcessVersions | Readonly<Record<string, string | undefined>>): string;
|
|
84
92
|
export declare function autoUpdateInstallLockPath(homeDir?: string): string;
|
|
85
93
|
export declare function autoUpdateJournalPath(homeDir?: string): string;
|
|
86
94
|
export declare function autoUpdateReceiptPath(homeDir?: string): string;
|
package/dist/cli/auto-update.js
CHANGED
|
@@ -21,6 +21,16 @@ const journalFileName = "auto-update-journal.jsonl";
|
|
|
21
21
|
const installLockFileName = "auto-update-install.lock";
|
|
22
22
|
const maxCommandOutputBytes = 4 * 1024 * 1024;
|
|
23
23
|
const execFileAsync = promisify(execFile);
|
|
24
|
+
/**
|
|
25
|
+
* The staged CLI needs Node. Inside OpenCode the plugin runs on a Bun-compiled
|
|
26
|
+
* host binary, and process.execPath names that binary rather than a Node
|
|
27
|
+
* runtime, so fall back to `node` on PATH there.
|
|
28
|
+
*/
|
|
29
|
+
export function childNodeExecutable(execPath = process.execPath, versions = process.versions) {
|
|
30
|
+
if (versions.bun === undefined && /^node(\.exe)?$/iu.test(path.basename(execPath.replaceAll("\\", "/"))))
|
|
31
|
+
return execPath;
|
|
32
|
+
return "node";
|
|
33
|
+
}
|
|
24
34
|
function stateRoot(homeDir) {
|
|
25
35
|
return path.join(homeDir, stateRootName);
|
|
26
36
|
}
|
|
@@ -126,8 +136,11 @@ async function ensurePrivateStateRoot(homeDir) {
|
|
|
126
136
|
throw new Error("automatic update state root is unsafe");
|
|
127
137
|
if (typeof process.getuid === "function" && stat.uid !== process.getuid())
|
|
128
138
|
throw new Error("automatic update state root is not user-owned");
|
|
139
|
+
// Project-local state for a project at HOME shares this directory and was
|
|
140
|
+
// created with default permissions; tighten our own directory instead of
|
|
141
|
+
// refusing every update.
|
|
129
142
|
if ((stat.mode & 0o077) !== 0)
|
|
130
|
-
|
|
143
|
+
await fs.chmod(directory, 0o700);
|
|
131
144
|
}
|
|
132
145
|
catch (error) {
|
|
133
146
|
if (error.code !== "ENOENT")
|
|
@@ -413,14 +426,15 @@ async function updateTransaction(options, homeDir, currentVersion, targetVersion
|
|
|
413
426
|
await bounded(() => runCommand("npm", npmArgs, { cwd: stageRoot, env: childEnv, timeout: autoUpdateTimeoutMs, maxBuffer: maxCommandOutputBytes }), autoUpdateTimeoutMs);
|
|
414
427
|
await appendJournal(homeDir, "npm-install", { spec });
|
|
415
428
|
const entrypoint = await packageEntrypoint(stageRoot, targetVersion);
|
|
429
|
+
const nodeExecutable = options.nodeExecutable ?? childNodeExecutable();
|
|
416
430
|
const installArgs = [entrypoint, "install", "--root", options.configRoot, "--no-model-prompt", "--no-permission-prompt", "--no-auto-update"];
|
|
417
431
|
stagedStateKnown = false;
|
|
418
|
-
await bounded(() => runCommand(
|
|
432
|
+
await bounded(() => runCommand(nodeExecutable, installArgs, { cwd: options.configRoot, env: childEnv, timeout: autoUpdateTimeoutMs, maxBuffer: maxCommandOutputBytes }), autoUpdateTimeoutMs);
|
|
419
433
|
stagedStateKnown = true;
|
|
420
434
|
await appendJournal(homeDir, "install", { spec });
|
|
421
435
|
const doctorArgs = [entrypoint, "doctor", "--root", options.configRoot, "--json", "--no-auto-update"];
|
|
422
436
|
stagedStateKnown = false;
|
|
423
|
-
const doctorOutput = await bounded(() => runCommand(
|
|
437
|
+
const doctorOutput = await bounded(() => runCommand(nodeExecutable, doctorArgs, { cwd: options.configRoot, env: childEnv, timeout: autoUpdateTimeoutMs, maxBuffer: maxCommandOutputBytes }), autoUpdateTimeoutMs);
|
|
424
438
|
doctor = parseDoctorOutput(doctorOutput, targetVersion);
|
|
425
439
|
stagedStateKnown = doctor.package?.name !== undefined && doctor.package.version !== undefined;
|
|
426
440
|
await appendJournal(homeDir, "doctor", { ok: doctor.ok, package: doctor.package, error: doctor.error });
|
|
@@ -503,7 +517,14 @@ export async function runAutoUpdate(options) {
|
|
|
503
517
|
const comparison = compareStableVersions(targetVersion, options.currentVersion);
|
|
504
518
|
if (comparison !== 1)
|
|
505
519
|
return { status: "skipped", currentVersion: options.currentVersion, targetVersion, reason: "up-to-date" };
|
|
506
|
-
|
|
520
|
+
let lock;
|
|
521
|
+
try {
|
|
522
|
+
lock = await acquireInstallLock(homeDir);
|
|
523
|
+
}
|
|
524
|
+
catch {
|
|
525
|
+
// Nothing has been mutated yet, so the current install stays usable.
|
|
526
|
+
return { status: "skipped", currentVersion: options.currentVersion, targetVersion, reason: "state-unavailable" };
|
|
527
|
+
}
|
|
507
528
|
if (lock === undefined)
|
|
508
529
|
return { status: "skipped", currentVersion: options.currentVersion, targetVersion, reason: "install-lock-busy" };
|
|
509
530
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" width="146" height="20" role="img" aria-label="release: 1.0.
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="146" height="20" role="img" aria-label="release: 1.0.7"><title>release: 1.0.7</title><g shape-rendering="crispEdges"><rect width="49" height="20" fill="#080d14"/><rect x="49" width="97" height="20" fill="#ff6337"/></g><g fill="#fff" text-anchor="middle" font-family="Verdana,Geneva,DejaVu Sans,sans-serif" text-rendering="geometricPrecision" font-size="110"><text x="255" y="140" textLength="390" transform="scale(.1)">release</text><text x="965" y="140" textLength="870" transform="scale(.1)" fill="#080D14">1.0.7</text></g></svg>
|
package/docs/reference.md
CHANGED
|
@@ -344,7 +344,10 @@ when discarding that project's ledger and receipts is intentional.
|
|
|
344
344
|
balanced mode; YOLO allows the configured OpenCode tools, but it does not weaken the planner's
|
|
345
345
|
deny guard or allow recursive subagent delegation.
|
|
346
346
|
- Packaged startup and successful interactive `install`/`doctor` commands use a bounded,
|
|
347
|
-
exact-version foreground update barrier.
|
|
347
|
+
exact-version foreground update barrier. The staged installer runs on Node from `PATH` when
|
|
348
|
+
the host binary is not Node (OpenCode's own runtime). The barrier keeps `~/.litopencode/`
|
|
349
|
+
owner-only and, if that directory is unusable, skips the update and loads the current
|
|
350
|
+
install. Disable it with `--no-auto-update` or
|
|
348
351
|
`LITOPENCODE_NO_AUTO_UPDATE=1`. The cache-only notice can also be disabled with
|
|
349
352
|
`NO_UPDATE_NOTIFIER=1` or `LITOPENCODE_NO_UPDATE_CHECK=1`.
|
|
350
353
|
- Public-source retrieval uses SSRF checks, redirect validation, byte limits, and access
|
package/package.json
CHANGED
|
@@ -44,6 +44,12 @@
|
|
|
44
44
|
"occurrences": 1,
|
|
45
45
|
"why": "This package manifest is the source of truth used by the lockstep guard."
|
|
46
46
|
},
|
|
47
|
+
{
|
|
48
|
+
"path": "skills/readme-studio/templates/remotion/package-lock.json",
|
|
49
|
+
"kind": "derived",
|
|
50
|
+
"occurrences": 3,
|
|
51
|
+
"why": "The Remotion template lockfile has 3 occurrence(s) of an unrelated dependency version matching this package release by coincidence; it is not release metadata, and the count follows the current package version."
|
|
52
|
+
},
|
|
47
53
|
{
|
|
48
54
|
"path": "test/docs.test.mjs",
|
|
49
55
|
"kind": "pinned",
|