jpkg: complete binary package setup

ober

b0e6f6f8702ae6f348cb8760ba8c873b11293719

diff --git a/.gitignore b/.gitignore
index fef5e3d..9e61057 100644
--- a/.gitignore
+++ b/.gitignore
@@ -36,3 +36,4 @@
 /.claude/
 .gerbil-lsp-cache/
 vendor/jerboa-shell-extras/
+.jpkg/
diff --git a/.jpkgignore b/.jpkgignore
index 7261f4d..3ecf722 100644
--- a/.jpkgignore
+++ b/.jpkgignore
@@ -8,4 +8,8 @@ __pycache__/
 *.so
 *.o
 *.a
+jsh-linux-amd64
+jsh-macos
+jsh-extras
+rust-coreutils/target/
 .git/
diff --git a/jpkg.lock b/jpkg.lock
new file mode 100644
index 0000000..1b4f6b5
--- /dev/null
+++ b/jpkg.lock
@@ -0,0 +1,2 @@
+;; jpkg.lock — generated by jpkg; records the exact resolved dependency graph. Do not edit by hand.
+(lock (version 1) (packages ()))
diff --git a/jpkg.policy.sexp b/jpkg.policy.sexp
new file mode 100644
index 0000000..3f95f7f
--- /dev/null
+++ b/jpkg.policy.sexp
@@ -0,0 +1,3 @@
+(policy
+  (mode dev)
+  (allow (native-build) (ffi)))
diff --git a/jpkg.sexp b/jpkg.sexp
index 3f84828..aa12f4a 100644
--- a/jpkg.sexp
+++ b/jpkg.sexp
@@ -8,4 +8,6 @@
   (modules ((root ".")))
   (dependencies ())
   (dev-dependencies ())
-  (capabilities ()))
+  (capabilities ((native-code reason: "shell FFI shim and custom program image")
+                 (ffi libraries: ())
+                 (executables ("jsh-macos")))))