Skip to content

kdeps/schema

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Kdeps Schema

DEPRECATION NOTICE

This PKL-based schema is now legacy and being deprecated. This version (v0.5.0) will be the last release using PKL for schema definitions. Future versions of Kdeps will migrate to YAML for schema definitions.

This is the schema definitions used by kdeps. See the schema documentation.

What is Kdeps?

Kdeps is an AI Agent framework for building self-hosted RAG AI Agents powered by open-source LLMs.

Release Notes

Latest Release: v0.5.0

  • chore: auto-update pkl to 0.30.2 and pkl-go to 0.12.1 (#52)

    Change authentication token in workflow Updated the workflow to use RELEASE_TOKEN instead of GITHUB_TOKEN for authentication. fix: automate PKL import conversion to local paths Rewrote fix_deps_imports.sh to automatically convert package URLs to local paths for offline compatibility. This script now:

    1. Converts remote package URLs to local paths programmatically
  • package://pkg.pkl-lang.org/pkl-go/pkl.golang@{version}#/go.pkl

  •  β†’ external/pkl-go/codegen/src/go.pkl
    
  • package://pkg.pkl-lang.org/pkl-pantry/pkl.experimental.uri@{version}#/URI.pkl

  •  β†’ external/pkl-pantry/packages/pkl.experimental.uri/URI.pkl
    
    1. Handles any version dynamically using regex patterns

    2. Cross-platform compatible (macOS and Linux)

  • Uses temporary file approach instead of sed -i for portability

    1. Validates conversion success
  • Verifies no package URLs remain

  • Exits with error if conversion incomplete

  • Benefits:

  • βœ… Fully automated in workflow (runs after download_deps.sh)

  • βœ… No manual intervention needed

  • βœ… Version-agnostic (works with any PKL version updates)

  • βœ… Ensures offline compatibility for all PKL files

  • βœ… TestEnsureOfflineCompatibility passing

    This replaces the previous manual approach and ensures the auto-update workflow will always produce offline-compatible PKL files.

    πŸ€– Generated with Claude Code

    Co-Authored-By: Claude Sonnet 4.5 noreply@anthropic.com

    fix: convert PKL files to use local paths for offline compatibility Replaced all remote package URLs with local paths to ensure offline compatibility:

  • package://pkg.pkl-lang.org/pkl-go/pkl.golang@0.11.1#/go.pkl

    • β†’ external/pkl-go/codegen/src/go.pkl
  • package://pkg.pkl-lang.org/pkl-pantry/pkl.experimental.uri@1.0.3#/URI.pkl

    • β†’ external/pkl-pantry/packages/pkl.experimental.uri/URI.pkl

    Files updated:

  • All 21 PKL files in deps/pkl/ directory

    Tests:

  • βœ… TestEnsureOfflineCompatibility passing

  • βœ… All 27 asset tests passing

  • βœ… No remote package URLs remaining

    This fixes the offline compatibility test failures and ensures all PKL files work without internet access using only local dependencies.

    πŸ€– Generated with Claude Code

    Co-Authored-By: Claude Sonnet 4.5 noreply@anthropic.com

    fix: eliminate case-insensitive file name collisions Fixed case-insensitive file name collision issues on macOS/Windows by:

    1. Updated download_deps.sh to only download files specified in versions.json
    • Changed from copying all .pkl files to copying only specified files
    • Preserves directory structure for nested files
    • Prevents downloading unnecessary files that cause collisions
      1. Corrected file names in versions.json to match actual files in packages:
    • com.circleci.v2: CircleCI.pkl β†’ Config.pkl
    • io.prometheus: Prometheus.pkl β†’ Configuration.pkl, Rule.pkl, PrometheusObject.pkl
    • org.apache.spark: Spark.pkl β†’ Properties.pkl, PropertiesBase.pkl
    • pkl.table: TableRenderer.pkl β†’ table.pkl
    • pkl.lua: Lua.pkl β†’ lua.pkl
    • pkl.experimental.net: Network.pkl β†’ net.pkl, u128.pkl
    • pkl.csv: CSV.pkl β†’ csv.pkl
      1. Benefits:
    • βœ… No case-insensitive collisions (verified with detection script)
    • βœ… Faster downloads (only fetches needed files)
    • βœ… Smaller repository size (71 files vs 2475+ files)
    • βœ… All Go tests passing
    • βœ… Works on case-insensitive filesystems (macOS, Windows)
    • Test results:
  • Downloaded 71 pkl files across 22 directories

  • Zero case-insensitive duplicates detected

  • All asset tests passing (27/27)

    Resolves case-insensitive file name collision errors.

    πŸ€– Generated with Claude Code

    Co-Authored-By: Claude Sonnet 4.5 noreply@anthropic.com

    feat: revert to v0.4.1-pkldocs with auto-update workflow

  • Revert repository to v0.4.1-pkldocs state

  • Add auto-update GitHub Actions workflow for PKL dependencies

  • Add workflow documentation (README, QUICKSTART, TESTING)

  • Fix fix_deps_imports.sh for Linux compatibility (sed syntax)

  • Update OFFLINE.md with automation section

  • Add workflow badge to README.md

  • Update latest release version to v0.4.1-pkldocs

    The auto-update workflow:

  • Runs daily at 00:00 UTC

  • Checks for new PKL and pkl-go releases

  • Automatically creates PRs with detailed changelogs

  • Validates changes with tests before PR creation

  • Can be triggered manually via workflow_dispatch

    All tests passing:

  • 27 Go tests passed

  • Build successful

  • Workflow dependencies verified (jq, versions.json)

    πŸ€– Generated with Claude Code

    Co-Authored-By: Claude Sonnet 4.5 noreply@anthropic.com

Previous Highlights

  • v0.4.1-pkldocs: - update relnotes

    pkldoc generation fix

    Merge branch 'main' of https://github.com/kdeps/schema

    Merge branch 'main' of https://github.com/kdeps/schema

    added retract directive on previous tags used for kdeps-next experiments pushed as main tags

  • v0.4.1-dev: - Update pkl min (#42)

    • added retract directive on previous tags used for kdeps-next experiments pushed as main tags

    • changed minPklVersion to "0.29.1"

  • v0.4.0-dev: - Tempdir+assets (#41)

    • added retract directive on previous tags used for kdeps-next experiments pushed as main tags

    • copy assets to tempdir

    • update to pkkl version 0.29.1

  • v0.3.1-dev: -

  • v0.3.0-dev: - added retract directive on previous tags used for kdeps-next experiments pushed as main tags

    updated relnote/readme

  • v0.3.0: - Pkl gen go upgrade (#40)

    • additional assets offline-ready redundancy

    • upgrade to pkl-go 0.11.1 and pkl-gen-go 0.11.1 updated README.md

  • v0.2.50: - Offline phase 3 (#39)

    • upgraded gradle and fix pkldoc GHA step

    • add org.openapis.v3 to list of dependencies

    • use pkl-pipe 1.0.2

    • added new dependencies to fix pkldoc

    • add more deps to fix pkldoc GHA generation

    • cleanup dependencies and version to only include pkl-pantry and pkl-go

    • move external to assets folder

    • use remote package resource in deps/pkl

    • streamline gha flows on push to branch/master and tag

    • target offline/local on assets/pkl

    • fix assets tests and fix Makefile generate step

    • fix GHA build step

    • fixed pkl version handling for non-tagged build

    • add redundant local and offline conversion of PKL files through assets library

  • v0.2.49: - Fix pkldoc 3 (#38)

    • upgraded gradle and fix pkldoc GHA step

    • add org.openapis.v3 to list of dependencies

    • use pkl-pipe 1.0.2

    • added new dependencies to fix pkldoc

    • add more deps to fix pkldoc GHA generation

  • v0.2.48: - Fix pkldoc 2 (#37)

    • upgraded gradle and fix pkldoc GHA step

    • add org.openapis.v3 to list of dependencies

    • use pkl-pipe 1.0.2

    • added new dependencies to fix pkldoc

  • v0.2.47: - Fix pkldoc 1 (#36)

    • upgraded gradle and fix pkldoc GHA step

    • add org.openapis.v3 to list of dependencies

    • use pkl-pipe 1.0.2

  • v0.2.46: - upgraded gradle and fix pkldoc GHA step (#35)

  • v0.2.45: - added the embedded assets/pkl/ to the release

    updated README.md

  • v0.2.44: - Offline part 2 (#34)

    • added embedded assets support

    • implement offline-ready PKL dependency management system

  • v0.2.43: - added OfflineMode to run agents on offline (#33)

    added AGENTS.md file

  • v0.2.42: - Change workflow Name -> AgentID for much clearer config id

  • v0.2.41: - hotfix: upgrade pkl version to 0.28.2

    new uniform schema semantics (#32)

  • v0.2.40: - embed deps/pkl schema files via go:embed

  • v0.2.39: - add the pkl files in the output_dir for expose to tests

  • v0.2.38: - update readme/relnotes

    add resource#itemValues function to obtain item iteration values

  • v0.2.37: - add pkl:json imports per each resource

  • v0.2.36: - added the itemValues per resource to obtain the iteration results

  • v0.2.35: - null propagate the array obtained from dynamic reader for item values

  • v0.2.34: - add nullable defaults for item values listing

  • v0.2.33: - add return value listing type for item

  • v0.2.32: - return a new listing when item results is null

  • v0.2.31: - values now require to pass the actionID (#18)

  • v0.2.30: - update readme/relnotes

    Merge branch 'main' of https://github.com/kdeps/schema

    removed id params on item operations

  • v0.2.29: - change item function signature to not require an id params (#17)

    • added ability to iterate through items

    • changed item.fetch -> item.current

    • change item function signature to not require an id params

  • v0.2.28: - added ability to iterate through items (#16)

    • added ability to iterate through items

    • changed item.fetch -> item.current update readme/relnotes

  • v0.2.27: - hotfix: register tool into resources

    updated relnote/readme

  • v0.2.26: - hotfix: add path to the script or inline script to LLM tools

  • v0.2.25: - add ability for LLM to use tools (akin to MCP) (#15)

    Merge branch 'main' of https://github.com/kdeps/schema

    updated relnote/readme

  • v0.2.24: - Session sqlite storage (#14)

    • added deleteItem to memory storage

    • add Session ephemeral storage updated relnote/readme

  • v0.2.23: - Expr block (#13)

    • removed unusued MemoryRecord class

    • add 'expr {...}' block to eval pkl expressions, i.e. memory.setItem('foo', 'bar') Merge branch 'main' of https://github.com/kdeps/schema

    updated relnote/readme

  • v0.2.22: - simplify memory operations (getItem/setItem), and add clear() (#12)

  • v0.2.21: - add the persistent sqlite memory record item read and update function (#11)

    Merge branch 'main' of https://github.com/kdeps/schema

    update readme/relnote

  • v0.2.20: - remove specific LLM role types (#10)

    updated schema readme/relnotes

  • v0.2.19: - Multi-prompt support (#9)

    • add role types on LLM action

    • add multiprompt support

  • v0.2.18: - add role types on LLM action (#8)

  • v0.2.17: - Add TrustedProxies to WebServer (#7)

    • fix indentation on deps/pkl files

    • add trustedproxy on webserver

    • keep webserver name in parity with apiserver

  • v0.2.16: - add webserver settings to project workflow settings (#6)

  • v0.2.15: - Create frontend serving settings (#5)

    • upgrade default ollama version to 0.6.5

    • added CORS configuration to APIServer

    • added webserver settings for serving static (html, htmx, etc.) or app (nodejs, streamlit, rails, etc.)

  • v0.2.14: - allow restricting http methods and params per resource (#4)

    Merge branch 'main' of https://github.com/kdeps/schema

    updated release notes

  • v0.2.13: - allow setting permitted HTTP values (headers, params, methods, routes) on resource (#3)

    updated release notes

  • v0.2.12: - add ability to set tz identifier timezone (#2)

  • v0.2.11: - Merge pull request #1 from kdeps/bump_versions_04_2025 upgrade lowest pkl version to 0.28.1 Merge branch 'bump_versions_04_2025' of https://github.com/kdeps/schema into bump_versions_04_2025

    upgrade lowest pkl version to 0.28.1

    upgrade lowest pkl version to 0.28.1

  • v0.2.10: - changed timestamp to duration from durationunit

    updated relnotes / readme

  • v0.2.9: - change timeoutDuration to Duration and use PKL semantics for duration seconds

  • v0.2.8: - Use DurationUnit for Timestamps; Upgrade pkl-go to 0.9.0

  • v0.2.7: - api response meta blocks can be optional

    updated release info

  • v0.2.6: - added api response meta info for other additional information sent over the JSON response

    updated release notes

  • v0.2.5: - allow sending headers to response

  • v0.2.4: - allow access to client IP and request ID

    added new schema documentation info

    updated release notes

  • v0.2.3: - added trustedProxies settings to API server

  • v0.2.2: - Change resource ID to actionID, and Workflow action to targetActionID

  • v0.2.1: - bump pkl to 0.27.2

    changed timeoutSeconds -> timeoutDuration

  • v0.2.0: - Use uniform naming convention for {Http,Api,Id,Json} -> {HTTP,API,ID,JSON}

    updated .gitattributes

  • v0.1.46: - reprioritize request skip validations

  • v0.1.45: - removed all deprecated imports

  • v0.1.44: - skip & validation is now a listing of any types

  • v0.1.43: - updated README.md

    bump pkl to 0.27.1

  • v0.1.42: - upgrade minimum pkl version to 0.26.3. added minor fixes on the relnote generator.

    Added skip validation helper functions

  • v0.1.41: - return stderr if not empty on stdout function

    added README.md and relnote generator

  • v0.1.40: - change request function from param("..") -> params("..")

  • v0.1.39: - import upstream PKL modules and KDEPS PKL helpers in resource & api response

    document renderers respond with null rather than empty string

  • v0.1.38: - added document pkl module for parsing and creating json, yaml and xml docs

  • v0.1.37: - added Data resource helper for getting agent data file path

  • v0.1.36: - Added file attribute where each associated resource value was saved

  • v0.1.35: - decode base64 strings by default on all Resource types

  • v0.1.34: - added params mapping to http client resources (go gen code)

    added params mapping to http client resources

  • v0.1.33: - make the build args as mapping; added build env in docker settings

  • v0.1.32: - Add parameters to docker settings; removed unused PKL configurations

  • v0.1.31: - added heroImage and agentIcon

    added ollamaImageTag property in workflow settings

  • v0.1.30: - Make the API response errors block listing (array)

  • v0.1.29: - added condaPackages section

    added support for installing conda packages

  • v0.1.28: - register python resource to resource pkl

    Revert "upgrade pkl to 0.27.0; register python resource to resource pkl" This reverts commit 86a334d697479e307513f759d2a7b0b06f9be35c.

    Revert "Update Gradle to 8.10.2" This reverts commit 45a93d3ebfa5aa2e795144984f0cde22bc1dc127.

  • v0.1.27: - Update Gradle to 8.10.2

  • v0.1.26: - upgrade pkl to 0.27.0; register python resource to resource pkl

  • v0.1.25: - added python script resource

  • v0.1.24: - reflect name changes to dockersettings go source

  • v0.1.23: - changed ppa to repositories

    added install Anaconda option

  • v0.1.22: - Make workflow an open module

  • v0.1.21: - deprecate postflightCheck

  • v0.1.20: - upgrade cicd pkl to 0.26.1

  • v0.1.19: - added API documentation. Change request API files functions for clarity

  • v0.1.18: - added Ubuntu PPA support; add API for querying filetypes by index

  • v0.1.17: - simplify usage of vision models and attachments

  • v0.1.16: - added visionFiles to LLM

  • v0.1.15: - fix typo for resolving filepath

  • v0.1.14: - renamed responseFile to file

    renamed responseFile to file

    added API server responseFile

    added request APIs for getting the list of files

  • v0.1.13: - always return the first element, in case of a single file upload

    support multiple file uploads

  • v0.1.12: - added vision and image gen attributes to LLM

  • v0.1.11: - make api serverr request extendable

  • v0.1.10: - Added request file operations. Decode base64 request by default. include allowed HTTP methods.

  • v0.1.9: - fix isEmpty on class

  • v0.1.8: - simplify resource resolver methods

    remove api server response type, focus on json response for now

  • v0.1.7: - removed textproto from api response types (gen code)

    removed textproto from api response types

  • v0.1.6: - response keys gen code

  • v0.1.5: - added json response keys to LLM

  • v0.1.4: - fix http response block

  • v0.1.3: - change schema to jsonResponse (bool)

  • v0.1.2: - set empty defaults when calling a function

    added security enforcement settings

    added schema to LLM

  • v0.1.1: - added extended functions for exec, http and llm modules

  • v0.1.0: - added deferred response api

    added llm timeout and kdeps dir settings

    add retry mechanism on failed create docs step

  • v0.0.50: - increase build timeout to 1 minute

    use a unified api for accessing resource values

  • v0.0.49: - exec, chat and client are all blocks

  • v0.0.48: - pre/post flights now a block that includes custom api error

  • v0.0.47: - change resource action to be not a listing

  • v0.0.46: - Revert "disable docs gha action until sorted this out" This reverts commit 6bed01569525deb1c8fc803b788c9391b1540b01.

  • v0.0.45: - disable docs gha action until sorted this out

    added apiResponse to resource; rename run -> action

  • v0.0.44: - simplify api server request template by using Dynamic maps

  • v0.0.43: - workflow and api server has a single required action

  • v0.0.42: - non-optional fields and use listing boolean for prefligh & skip steps

  • v0.0.41: - dockerSettings now becomes agentSettings since it has LLM models & hostIP/portNum was moved to apiSettings

    GEN: move the hostIP and serverPort settings to API Server settings

  • v0.0.40: - move the hostIP and serverPort settings to API Server settings

  • v0.0.38: - Added API Server Request/Response templates

    added Tags, a globally referenceable token

  • v0.0.37: - Changed docker hostIP portbinding settings

  • v0.0.36: - Changed docker settings for hostName and portNum; Fixed port default value

  • v0.0.35: - added hostname and portnum settings to docker

  • v0.0.34: - remove the placeholders for resource and workflow

    remove the placeholders for resource and workflow

  • v0.0.33: - Added semantics for external workflows; Additional semantics for resource dependencies

  • v0.0.32: - updated gen sdk

  • v0.0.31: - added optional params for default template fields on resource

  • v0.0.30: - Removed llm-apis (for now) and make local LLM the default. (reinstate commercial and cloud llm-apis in future versions)

    Removed workflows array, all pkl files within resources/ folder will be a workflow. Make a resource not an array but a single entry

  • v0.0.29: - fix workflow template validation

  • v0.0.28: - updated gen sdks

    removed RAG resource, and expect condition, renamed check to preflight, renamed api to httpclient

    removed modelfile, parameters, schema chat

    removed interactive input for ENV

    renamed ResourceAPI to ResourceHTTPClient

  • v0.0.27: - deprecate templates on build

    added docker container init settings

  • v0.0.26: - updated gen code with dockerGPU and runMode setings

    added dockerGPU and runMode to system config

  • v0.0.25: -

  • v0.0.24: - updated kdeps template with new fields

  • v0.0.23: - reinstate read resource

  • v0.0.22: - init llmapikeys on settings

  • v0.0.21: - removed read resource for now

  • v0.0.20: - added default value for resource env read

  • v0.0.19: - read llm api keys from env vars

  • v0.0.18: - Updated kdeps.pkl to add global configs

    Added docker image and llmsettings directive

  • v0.0.17: - added template generation step

  • v0.0.16: - removed login ci step

  • v0.0.15: - upload pkl to firebase storage

  • v0.0.14: - regexp match for go version semantics - PklProject

  • v0.0.13: - regexp match for go version semantics - GHA

  • v0.0.12: - regexp match for go version semantics - GHA

  • v0.0.11: - regexp match for go version semantics

  • v0.0.2: - try adding prefixed 'v' for go mod tidy

  • v0.0.1: -

  • 0.0.10: - init go.mod; move schema/pkg to schema/gen

    added sleep timer to resolve new pkl version release

  • 0.0.9: - add global settings for kdeps

    initialize the default routes

    renamed Settings.pkl -> Project.pkl

  • 0.0.8: - Added API server mode

    fix indentation

  • 0.0.7: - added project support files

    move schema module path to deps/pkl

  • 0.0.6: - specify the source url pattern in Pkl docs

  • 0.0.5: - use pkl-docs env for deploying pages

    Added Makefile and gen-go code

    Delete CNAME

    Update CNAME

    Create CNAME

  • 0.0.4: - Fix resolution of pkl files

  • 0.0.3: - Fix zip package resolution in PklProject; Use pkg as gen folder

  • 0.0.2: - fix version resolution

About

PKL Schema used by Kdeps

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 3

  •  
  •  
  •