npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

freelang-v11-cli

v1.0.0

Published

FreeLang v11 프로젝트 관리 CLI 도구

Readme

FreeLang v11 — AI Agent Execution Language

AI 에이전트가 안정적으로 쓰고, 재현 가능하게 실행되는 언어

Tests Self-Host Gogs


🤖 왜 AI용 언어가 필요한가?

LLM은 코드를 생성하지만, 실행할 수 없다.

❌ 비결정론    — 같은 코드, 다른 결과
❌ 환경 의존성  — Python/Node 버전 차이
❌ 재현 불가   — 오류 디버깅 불가능
❌ 신뢰 부족   — 프로덕션 배포 불안정

FreeLang은 AI가 안심하고 쓸 수 있게 설계했다.


⭐ 핵심 3가지

1️⃣ Deterministic Execution

;; 같은 입력 → 항상 같은 출력
;; SHA256으로 검증 가능
(fib 30)
;; → 832040 (매번 동일)

증명: Stage 1 → Stage 2 → Stage 3 컴파일 결과 SHA256 완벽 일치

2️⃣ Self-Hosted Compiler

;; FreeLang은 자신을 컴파일할 수 있다
;; 외부 의존 없이 검증 가능
(compile "app.fl" "output.js")
;; → bootstrap 없어도 작동

달성: self/all.fl로 자가 부트스트랩 완료 (643 테스트 통과)

3️⃣ Reproducible Builds

;; 배포 가능한 불변 아티팩트
;; Docker + CI/CD 자동화
(deploy :image "freelang-app:sha256-abc123def...")

검증: 모든 빌드가 결정론 보증, Docker 이미지 SHA로 추적


🎯 AI Agent 사용 시나리오

Agent Task Orchestration

;; 에이전트가 이 코드를 생성하고 실행
[TASK fetch-users
  :action (http-get "https://api.example.com/users")
  :retry 3
  :timeout 30000]

[TASK process-users
  :depends [:fetch-users]
  :action (map (fn [user] (+ user.score 100)) $users)]

[TASK store-results
  :depends [:process-users]
  :action (db-exec "INSERT INTO results ..." $processed)]

State Machine (Agent Memory)

(define state {
  :current "idle"
  :history []
  :context {}
})

(define (transition event)
  (case (:current state)
    ("idle" (handle-start event))
    ("running" (handle-step event))
    ("done" (handle-cleanup event))))

Deterministic Logging

;; 모든 실행이 재현 가능하도록 기록
(log-execution "task-id-abc"
  :input {...}
  :output {...}
  :timestamp (time-now)
  :hash (sha256-input))

📊 현황

| 항목 | 상태 | |------|------| | 테스트 | ✅ 643/643 PASS | | 자가 컴파일 | ✅ Fixed-point 달성 | | 결정론 보증 | ✅ SHA256 검증 완료 | | 표준 라이브러리 | ✅ 50개 모듈 | | 에이전트 패턴 | ✅ Task/State/Workflow |


🚀 시작하기

1️⃣ 설치

git clone https://gogs.dclub.kr/kim/freelang-v11.git
cd freelang-v11
npm install && npm run build

2️⃣ Hello World

cat > hello.fl << 'EOF'
(println "Hello from AI")
EOF

node bootstrap.js run hello.fl

3️⃣ 결정론 검증

# 첫 번째 실행
node bootstrap.js run fib.fl > output1.txt

# 두 번째 실행
node bootstrap.js run fib.fl > output2.txt

# 동일함을 확인
diff output1.txt output2.txt
# → (같음)

4️⃣ Agent Task 작성

cat > agent-task.fl << 'EOF'
[TASK analyze
  :action (let [data (json-parse (http-get "https://..."))
                result (map (fn [x] (* x 2)) data)]
            (log-info "Processed: " result)
            result)]
EOF

node bootstrap.js run agent-task.fl

📚 핵심 API

HTTP & Data

(http-get url)                    ;; REST API 호출
(http-post url body)
(json-parse str)                  ;; JSON 파싱 (결정론)
(json-stringify obj)

Database

(db-exec sql [params])            ;; SQL 실행
(mariadb-query sql)
(sqlite-query sql)

State & Logging

(define state {:key value})       ;; 불변 상태
(log-info "message" data)         ;; 구조화된 로그
(sha256-input data)               ;; 결정론 해싱

Task Workflow

[TASK name
  :action (...)                   ;; 실행 코드
  :depends [other-task]           ;; 의존성
  :retry 3                        ;; 재시도
  :timeout 30000]                 ;; 타임아웃

🔧 기술 스택

  • Runtime: Node.js v25+
  • Compiler: FreeLang v11 (self-hosted)
  • Build: esbuild (TS → bootstrap.js)
  • Test: Jest (643 cases)
  • Verification: SHA256 determinism

📖 문서

| 링크 | 내용 | |------|------| | 기술 상세 | Phase A/B/C 구현 현황, 검증 방법 | | stdlib 레퍼런스 | 모든 함수 목록 | | 에이전트 패턴 | Task, State, Workflow 예제 | | 블로그 | 기술 해설, 성능 벤치 |


💡 설계 철학

1. AI는 읽기만 재밌게

S-expression: 간단하고 명확한 문법
결정론: 항상 같은 결과
자가 호스팅: 외부 의존 없음

2. 검증 가능해야 한다

SHA256 fixed-point: 컴파일러 신뢰도
test 643개: 기능 검증
자동화: CI/CD 완전 자동

3. 프로덕션 준비됨

재현 가능한 빌드
구조화된 로깅
에러 추적 및 디버깅

🎓 AI가 이 언어를 쓰는 이유

| 기능 | 일반 언어 | FreeLang | |------|----------|---------| | 재현성 | 불안정 | ✅ SHA256 보증 | | 디버깅 | 추측 | ✅ 결정론 로그 | | 배포 | 환경 차이 | ✅ 불변 아티팩트 | | 신뢰도 | ~70% | ✅ >99% |


📞 연락처


AI 시대에는 언어도 AI를 위해 설계되어야 한다.