Thanks to visit codestin.com
Credit goes to github.com

Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
67 commits
Select commit Hold shift + click to select a range
1fa63b3
migrate to schema v0.3.1
jjuliano Jul 2, 2025
b88fd83
use embedded pkl assets in tests to avoid network calls
jjuliano Jul 2, 2025
627900f
updated readme
jjuliano Jul 2, 2025
a8c4ce1
updated docs
jjuliano Jul 2, 2025
75978f4
updated docs
jjuliano Jul 4, 2025
a79b954
upgrade to schema v0.3.2
jjuliano Jul 5, 2025
af680cc
upgrade to schema v0.3.2
jjuliano Jul 5, 2025
d5d0733
checkpoint progress - deprecating promise operator
jjuliano Jul 6, 2025
19d4571
deadlinks doc fixes
jjuliano Jul 7, 2025
5253525
upgrade gha pkl version to 0.28.2
jjuliano Jul 7, 2025
333a95d
use reader based agent name resolution
jjuliano Jul 8, 2025
58b31a4
use singleton agent reader
jjuliano Jul 8, 2025
f5929d5
add new shorthand rules for targetting required actionIDs
jjuliano Jul 8, 2025
7ff09e4
upgrade to schema v0.3.3
jjuliano Jul 9, 2025
7aa990e
expand actionID on requires block
jjuliano Jul 9, 2025
ced332f
Fix nil pointer dereferences in resolver tests - add nil checks for d…
jjuliano Jul 9, 2025
cc3bdc3
update schema
jjuliano Jul 10, 2025
eb1555f
add pklRes to store PKL to sqlite instead of file
jjuliano Jul 10, 2025
5c677ad
update to schema 0.4.0
jjuliano Jul 11, 2025
fb64fd3
fix failing tests
jjuliano Jul 11, 2025
67ad63b
fixes
jjuliano Jul 12, 2025
5843fd8
pklRes fixes
jjuliano Jul 12, 2025
91dfbf2
checkpoint
jjuliano Jul 14, 2025
1753dd6
progress
jjuliano Jul 14, 2025
bfc5e31
add pklres+pkleval code
jjuliano Jul 14, 2025
419ad68
linter fixes
jjuliano Jul 15, 2025
2f6107a
linter fix
jjuliano Jul 15, 2025
8e8bf9d
deprecate file-based PKL pre/post processing as pklres provides real-…
jjuliano Jul 15, 2025
7b83a4b
linter fixes
jjuliano Jul 15, 2025
6f23d38
fix tests
jjuliano Jul 15, 2025
acfcd88
add new Makefile tasks for local-dev and local-update mode
jjuliano Jul 16, 2025
7fbc079
progress
jjuliano Jul 16, 2025
fa1b709
implicitly scoped reader by graphID
jjuliano Jul 16, 2025
05c269c
'make format' fixes
jjuliano Jul 16, 2025
4bb941d
linter errors fix
jjuliano Jul 16, 2025
3847127
timestamp fix
jjuliano Jul 16, 2025
b86d2a6
refer to local pkl when using local-mode
jjuliano Jul 16, 2025
fb7556a
linter fixes and local-mode improvements
jjuliano Jul 16, 2025
000e2b0
fix Makefile local-dev project path resolution
jjuliano Jul 17, 2025
c348be5
simplify pklres api
jjuliano Jul 17, 2025
19a69e4
pklres improvements
jjuliano Jul 17, 2025
ef5f7ac
wait for dependent resource to complete before pklres op
jjuliano Jul 17, 2025
27482eb
sync pklres op optimizations
jjuliano Jul 17, 2025
ebebcd4
maintain a single PklEvaluator instance and pass it from main downstream
jjuliano Jul 17, 2025
da29956
test fixes
jjuliano Jul 17, 2025
e7e142a
fixes
jjuliano Jul 18, 2025
b24bf46
Add a new unified core state manager for pklres and agent readers
jjuliano Jul 18, 2025
c5c285b
further simplify pklres as kv store w/ graphid as collection
jjuliano Jul 18, 2025
d16dd6e
pklres improvements
jjuliano Jul 19, 2025
1dd11ca
fix reader actionID resolution logic, and add kdeps run build tui
jjuliano Jul 19, 2025
4e07c8a
add improved gui for kdeps run operations
jjuliano Jul 19, 2025
81d239c
show container webserver and apiserver routes upon kdeps build comple…
jjuliano Jul 19, 2025
342041f
progress on making pklres async with graph order resolution and depen…
jjuliano Jul 19, 2025
8a4ca12
simplify and remove base64 encode/decode logic in both code and pkl t…
jjuliano Jul 19, 2025
9638965
simplify and templatize api response
jjuliano Jul 19, 2025
b6d1dd0
graph resource _ pklres fix
jjuliano Jul 20, 2025
6653a1b
continue fixing issues
jjuliano Jul 20, 2025
371ca4f
remove deprecated base64 encoder/decoder functions
jjuliano Jul 20, 2025
2a11b47
record all resource attributes to pklres
jjuliano Jul 20, 2025
60c6d80
fix make local-update
jjuliano Jul 20, 2025
138c295
add workflow configuration exposedport, environment and ratelimit
jjuliano Jul 20, 2025
95b8171
WIP: pklres backend integration
jjuliano Jul 21, 2025
3321ccd
fix localmode
jjuliano Jul 21, 2025
23cc72f
WIP: pklres dependency resolution fix
jjuliano Jul 21, 2025
b5361fd
implement backend relational algebra for pklres
jjuliano Jul 22, 2025
4def332
use new pklres relational algebra and dependency system
jjuliano Jul 22, 2025
7807f0e
reactive resolver
jjuliano Jul 22, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions .github/workflows/build-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -55,9 +55,9 @@ jobs:
mkdir -p ~/.local/bin
ARCH=$(uname -m)
if [ "$ARCH" = "aarch64" ]; then
curl -L -o ~/.local/bin/pkl 'https://github.com/apple/pkl/releases/download/0.28.1/pkl-linux-aarch64'
curl -L -o ~/.local/bin/pkl 'https://github.com/apple/pkl/releases/download/0.28.2/pkl-linux-aarch64'
elif [ "$ARCH" = "x86_64" ]; then
curl -L -o ~/.local/bin/pkl 'https://github.com/apple/pkl/releases/download/0.28.1/pkl-linux-amd64'
curl -L -o ~/.local/bin/pkl 'https://github.com/apple/pkl/releases/download/0.28.2/pkl-linux-amd64'
else
echo "Unsupported architecture: $ARCH" && exit 1
fi
Expand All @@ -69,7 +69,7 @@ jobs:
- name: Install pkl on Windows
if: matrix.platform == 'windows-latest'
run: |
Invoke-WebRequest 'https://github.com/apple/pkl/releases/download/0.28.1/pkl-windows-amd64.exe' -OutFile pkl.exe
Invoke-WebRequest 'https://github.com/apple/pkl/releases/download/0.28.2/pkl-windows-amd64.exe' -OutFile pkl.exe
echo "PATH=$env:GITHUB_WORKSPACE;$env:PATH" >> $env:GITHUB_ENV
.\pkl.exe --version
shell: pwsh
Expand Down Expand Up @@ -107,7 +107,7 @@ jobs:
# uses: Cyberboss/install-winget@v1
# - name: Install pkl
# run: |
# curl -L -o /c/Users/runneradmin/.local/bin/pkl.exe 'https://github.com/apple/pkl/releases/download/0.28.1/pkl-windows-amd64.exe'
# curl -L -o /c/Users/runneradmin/.local/bin/pkl.exe 'https://github.com/apple/pkl/releases/download/0.28.2/pkl-windows-amd64.exe'
# chmod +x /c/Users/runneradmin/.local/bin/pkl.exe
# /c/Users/runneradmin/.local/bin/pkl.exe --version
# shell: bash
Expand Down
16 changes: 8 additions & 8 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -38,9 +38,9 @@ jobs:
ARCH=$(uname -m)
echo "Detected architecture: $ARCH"
if [ "$ARCH" = "arm64" ]; then
curl -L -o ~/.local/bin/pkl 'https://github.com/apple/pkl/releases/download/0.28.1/pkl-linux-aarch64'
curl -L -o ~/.local/bin/pkl 'https://github.com/apple/pkl/releases/download/0.28.2/pkl-linux-aarch64'
elif [ "$ARCH" = "x86_64" ]; then
curl -L -o ~/.local/bin/pkl 'https://github.com/apple/pkl/releases/download/0.28.1/pkl-linux-amd64'
curl -L -o ~/.local/bin/pkl 'https://github.com/apple/pkl/releases/download/0.28.2/pkl-linux-amd64'
else
echo "Unsupported architecture: $ARCH" && exit 1
fi
Expand All @@ -56,9 +56,9 @@ jobs:
ARCH=$(uname -m)
echo "Detected architecture: $ARCH"
if [ "$ARCH" = "arm64" ]; then
curl -L -o ~/.local/bin/pkl 'https://github.com/apple/pkl/releases/download/0.28.1/pkl-macos-aarch64'
curl -L -o ~/.local/bin/pkl 'https://github.com/apple/pkl/releases/download/0.28.2/pkl-macos-aarch64'
elif [ "$ARCH" = "x86_64" ]; then
curl -L -o ~/.local/bin/pkl 'https://github.com/apple/pkl/releases/download/0.28.1/pkl-macos-amd64'
curl -L -o ~/.local/bin/pkl 'https://github.com/apple/pkl/releases/download/0.28.2/pkl-macos-amd64'
else
echo "Unsupported architecture: $ARCH" && exit 1
fi
Expand All @@ -71,7 +71,7 @@ jobs:
if: matrix.platform == 'windows-latest'
run: |
Write-Host "Downloading PKL..."
Invoke-WebRequest 'https://github.com/apple/pkl/releases/download/0.28.1/pkl-windows-amd64.exe' -OutFile pkl.exe
Invoke-WebRequest 'https://github.com/apple/pkl/releases/download/0.28.2/pkl-windows-amd64.exe' -OutFile pkl.exe
if (!(Test-Path .\pkl.exe)) {
Write-Host "pkl.exe not found!"
exit 1
Expand Down Expand Up @@ -264,7 +264,7 @@ jobs:
run: curl -LsSf https://raw.githubusercontent.com/kdeps/kdeps/refs/heads/main/install.sh | sh -s -- -d ${GITHUB_REF##*/}
- name: Install pkl
run: |
curl -L -o /c/Users/runneradmin/.local/bin/pkl.exe 'https://github.com/apple/pkl/releases/download/0.28.1/pkl-windows-amd64.exe'
curl -L -o /c/Users/runneradmin/.local/bin/pkl.exe 'https://github.com/apple/pkl/releases/download/0.28.2/pkl-windows-amd64.exe'
chmod +x /c/Users/runneradmin/.local/bin/pkl.exe
/c/Users/runneradmin/.local/bin/pkl.exe --version
shell: bash
Expand Down Expand Up @@ -306,9 +306,9 @@ jobs:
run: |
ARCH=$(uname -m)
if [ "$ARCH" = "aarch64" ]; then
curl -L -o ~/.local/bin/pkl 'https://github.com/apple/pkl/releases/download/0.28.1/pkl-linux-aarch64'
curl -L -o ~/.local/bin/pkl 'https://github.com/apple/pkl/releases/download/0.28.2/pkl-linux-aarch64'
elif [ "$ARCH" = "x86_64" ]; then
curl -L -o ~/.local/bin/pkl 'https://github.com/apple/pkl/releases/download/0.28.1/pkl-linux-amd64'
curl -L -o ~/.local/bin/pkl 'https://github.com/apple/pkl/releases/download/0.28.2/pkl-linux-amd64'
else
echo "Unsupported architecture: $ARCH" && exit 1
fi
Expand Down
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -223,3 +223,4 @@ pkg/**/**/*.cover
pkg/**/**/*.cov
*.cov
kdeps
local/
90 changes: 87 additions & 3 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ CURRENT_DIR=$(pwd)
TELEMETRY_KEY=""
FILES := $(wildcard *.yml *.txt *.py)

.PHONY: all clean test build tools format pre-commit tools-update dev-build
.PHONY: all clean test build tools format pre-commit tools-update dev-build local-dev local-update
all: clean deps test build

deps: tools
Expand All @@ -20,11 +20,13 @@ deps: tools

build: deps
@echo "$(OK_COLOR)==> Building the application...$(NO_COLOR)"
@CGO_ENABLED=1 go build -v -ldflags="-s -w -X main.Version=$(or $(tag),dev-$(shell git describe --tags --abbrev=0))" -o "$(BUILD_DIR)/$(NAME)" "$(BUILD_SRC)"
@CGO_ENABLED=1 go build -v -ldflags="-s -w -X main.Version=$(or $(tag),dev-$(shell git describe --tags --abbrev=0 2>/dev/null || echo 'unknown')) -X main.localMode=0" -o "$(BUILD_DIR)/$(NAME)" "$(BUILD_SRC)"

dev-build: deps
@echo "$(OK_COLOR)==> Building the application for Linux...$(NO_COLOR)"
@GOOS=linux GOARCH=amd64 CGO_ENABLED=1 CC=x86_64-linux-musl-gcc go build -v -ldflags="-s -w -X main.Version=$(or $(tag),dev-$(shell git describe --tags --abbrev=0))" -o "$(BUILD_DIR)/$(NAME)" "$(BUILD_SRC)"
@GOOS=linux GOARCH=amd64 CGO_ENABLED=1 CC=x86_64-linux-musl-gcc go build -v -ldflags="-s -w -X main.Version=$(or $(tag),dev-$(shell git describe --tags --abbrev=0 2>/dev/null || echo 'unknown')) -X main.localMode=0" -o "$(BUILD_DIR)/$(NAME)" "$(BUILD_SRC)"



clean:
@rm -rf ./bin
Expand Down Expand Up @@ -86,3 +88,85 @@ tools-update:
go install github.com/daixiang0/gci@latest; \
go install mvdan.cc/gofumpt@latest; \
go install github.com/golangci/golangci-lint/cmd/golangci-lint@latest;

# Local development setup
local-dev:
@echo "$(OK_COLOR)==> Setting up local development environment...$(NO_COLOR)"
@mkdir -p local/pkl local/project local/localproject ~/.kdeps/cache
@echo "$(OK_COLOR)==> Downloading PKL schema files...$(NO_COLOR)"
@if [ ! -d "local/pkl" ] || [ -z "$$(ls -A local/pkl 2>/dev/null)" ]; then \
echo "Downloading PKL files from schema repository..."; \
curl -s https://api.github.com/repos/kdeps/schema/contents/deps/pkl | \
jq -r '.[] | select(.type == "file") | .download_url' | \
while read url; do \
filename=$$(basename "$$url"); \
echo "Downloading $$filename..."; \
curl -s "$$url" -o "local/pkl/$$filename"; \
done; \
else \
echo "PKL files already exist in local/pkl/"; \
fi
@echo "$(OK_COLOR)==> Creating local project...$(NO_COLOR)"
@echo "Creating new local project..."; \
rm -rf localproject; \
~/.local/bin/kdeps new localproject; \
mv localproject local;
@echo "$(OK_COLOR)==> Packaging local project...$(NO_COLOR)"
./bin/kdeps package local/localproject
@echo "$(OK_COLOR)==> Extracting project to local/project...$(NO_COLOR)"
@rm -rf local/project
@mkdir -p local/project
@tar xzf localproject-1.0.0.kdeps -C local/project
@echo "$(OK_COLOR)==> Replacing import paths to use local schema...$(NO_COLOR)"
@find local/project -name "*.pkl" -type f -exec sed -i '' 's|package://schema\.kdeps\.com/core@[^#]*#/|/local/pkl/|g' {} \;
@echo "$(OK_COLOR)==> Building kdeps for Docker...$(NO_COLOR)"
@make dev-build
@echo "$(OK_COLOR)==> Deploying to Docker container...$(NO_COLOR)"
@CONTAINER=$$(docker ps --format "table {{.Names}}" | grep "^kdeps-" | head -1); \
if [ -z "$$CONTAINER" ]; then \
echo "$(ERROR_COLOR)==> No running kdeps-* container found$(NO_COLOR)"; \
exit 1; \
fi; \
echo "$(OK_COLOR)==> Found container: $$CONTAINER$(NO_COLOR)"; \
docker cp bin/kdeps $$CONTAINER:/bin/kdeps
@CONTAINER=$$(docker ps --format "table {{.Names}}" | grep "^kdeps-" | head -1); \
docker exec $$CONTAINER mkdir -p /local
@CONTAINER=$$(docker ps --format "table {{.Names}}" | grep "^kdeps-" | head -1); \
docker cp local/pkl $$CONTAINER:/local/
@CONTAINER=$$(docker ps --format "table {{.Names}}" | grep "^kdeps-" | head -1); \
docker exec $$CONTAINER rm -rf /agents/localproject || true
@CONTAINER=$$(docker ps --format "table {{.Names}}" | grep "^kdeps-" | head -1); \
docker exec $$CONTAINER mkdir -p /agents/localproject/1.0.0
@CONTAINER=$$(docker ps --format "table {{.Names}}" | grep "^kdeps-" | head -1); \
docker cp local/project/. $$CONTAINER:/agents/localproject/1.0.0/
@CONTAINER=$$(docker ps --format "table {{.Names}}" | grep "^kdeps-" | head -1); \
docker restart $$CONTAINER
@echo "$(OK_COLOR)==> Local development environment ready!$(NO_COLOR)"
@echo "$(OK_COLOR)==> Container restarted and accessible at http://localhost:3000$(NO_COLOR)"

# Helper task to just update the container with current changes
local-update:
@echo "$(OK_COLOR)==> Updating container with current changes...$(NO_COLOR)"
@echo "$(OK_COLOR)==> Building kdeps for Docker...$(NO_COLOR)"
@make dev-build
@CONTAINER=$$(docker ps --format "table {{.Names}}" | grep "^kdeps-" | head -1); \
if [ -z "$$CONTAINER" ]; then \
echo "$(ERROR_COLOR)==> No running kdeps-* container found$(NO_COLOR)"; \
exit 1; \
fi; \
echo "$(OK_COLOR)==> Found container: $$CONTAINER$(NO_COLOR)"; \
docker cp bin/kdeps $$CONTAINER:/bin/kdeps
@CONTAINER=$$(docker ps --format "table {{.Names}}" | grep "^kdeps-" | head -1); \
docker exec $$CONTAINER mkdir -p /local
@CONTAINER=$$(docker ps --format "table {{.Names}}" | grep "^kdeps-" | head -1); \
docker cp local/pkl $$CONTAINER:/local/
@echo "$(OK_COLOR)==> Creating localproject.kdeps package...$(NO_COLOR)"
@cd local/project && tar -czf ../../localproject.kdeps * && cd ../..
@CONTAINER=$$(docker ps --format "table {{.Names}}" | grep "^kdeps-" | head -1); \
docker exec $$CONTAINER mkdir -p /agents
@CONTAINER=$$(docker ps --format "table {{.Names}}" | grep "^kdeps-" | head -1); \
docker cp localproject.kdeps $$CONTAINER:/agents/
@CONTAINER=$$(docker ps --format "table {{.Names}}" | grep "^kdeps-" | head -1); \
docker restart $$CONTAINER
@echo "$(OK_COLOR)==> Container updated and restarted!$(NO_COLOR)"

Loading
Loading