# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

EAPI=8

DESCRIPTION="Open-source coding-agent CLI for cloud and local LLM providers"
HOMEPAGE="https://github.com/Gitlawb/openclaude"
# Scoped npm package: @gitlawb/openclaude
# Bundled dist/cli.mjs still has dynamic imports requiring node_modules at runtime.
# Vendor tarball with production node_modules is hosted on gentoo-zh-drafts.
SRC_URI="
	https://registry.npmjs.org/@gitlawb/${PN}/-/${P}.tgz
	https://github.com/gentoo-zh-drafts/openclaude/releases/download/v${PV}/${P}-node_modules.tar.gz
"
S="${WORKDIR}/package"

LICENSE="openclaude"
SLOT="0"
KEYWORDS="~amd64"
RESTRICT="bindist mirror strip"

QA_PREBUILT="
	usr/lib/node_modules/@gitlawb/${PN}/node_modules/*
	usr/lib64/node_modules/@gitlawb/${PN}/node_modules/*
"

RDEPEND="
	>=net-libs/nodejs-22
	dev-vcs/git
	sys-apps/ripgrep
"

src_install() {
	local install_dir="/usr/$(get_libdir)/node_modules/@gitlawb/${PN}"

	insinto "${install_dir#${EPREFIX}}"
	doins -r "${S}"/*

	# Explicitly set execute permission only on files known to need it.
	# If openclaude fails at runtime with EACCES, add the missing path here.
	fperms +x "${install_dir}/bin/openclaude"
	fperms +x "${install_dir}/node_modules/@vscode/ripgrep-linux-x64/bin/rg"
	fperms +x "${install_dir}/node_modules/@anthropic-ai/sandbox-runtime/dist/vendor/seccomp/x64/apply-seccomp"
	fperms +x "${install_dir}/node_modules/@anthropic-ai/sandbox-runtime/vendor/seccomp/x64/apply-seccomp"

	dosym "../$(get_libdir)/node_modules/@gitlawb/${PN}/bin/openclaude" "/usr/bin/openclaude"
}