feat(pdk): add config file support#1759
Merged
Merged
Conversation
✅ Deploy Preview for tarko ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
✅ Deploy Preview for agent-tars-docs ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #1759 +/- ##
==========================================
+ Coverage 14.23% 14.27% +0.04%
==========================================
Files 250 250
Lines 8565 8565
Branches 1674 1674
==========================================
+ Hits 1219 1223 +4
+ Misses 7170 7166 -4
Partials 176 176 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
4a901e6 to
1dd5264
Compare
- Add @tarko/config-loader 0.3.0 dependency for config loading - Implement defineConfig function for TypeScript configuration - Refactor types to extract common options (CommonOptions, AIOptions, FilterOptions) - Add PDKConfig interface with namespaced command-specific options - Implement loadPDKConfig and mergeOptions utilities - Update CLI to load and merge configuration with CLI arguments - Add comprehensive configuration documentation and examples - Ensure CLI, Node.js API, and Config API are isomorphic
- Remove common/ai/filter scope design from config - Flatten PDKConfig to match CLI and Node.js API structure - Simplify mergeOptions by removing complex scope resolution - Update documentation and examples to reflect new flat structure - Ensure complete isomorphism between all APIs
- Remove old common/ai/filter scope example - Update defineConfig example to match new isomorphic API - Add comments clarifying command-specific options
- Add detailed design philosophy and intent documentation - Explain isomorphic API design and flattened configuration structure - Document usage patterns for CLI, Node.js API, and Config API - Add comprehensive field-level documentation with default values - Include primary use cases and design notes for each interface - Ensure all comments express clear design intent and rationale
- Remove DESIGN PHILOSOPHY section as requested - Convert all field comments to multi-line format - Maintain comprehensive documentation while improving readability - Keep design intent documentation in interface-level comments
- Extract focused option groups (CoreOptions, AIOptions, etc.) - Compose command options from reusable building blocks - PDKConfig now extends all option groups instead of duplicating fields - Maintain flat configuration structure while eliminating redundancy - Improve type safety and maintainability through composition - Reduce code duplication by ~80% in type definitions
- Update type definitions header comment with correct PDK expansion - Fix CLI usage examples from 'ptk' to 'pdk' command - Align with README.md documentation and actual project naming - Ensure consistency across all documentation and examples
- Remove verbose configuration options from JSDoc example - Keep only essential options to demonstrate usage pattern - Reduce comment length from 37 lines to 13 lines - Maintain clarity while improving readability
- Add comprehensive configuration design principles in types.ts - Document config file vs CLI usage patterns in README - Add detailed comments explaining configuration loading strategy - Provide clear guidance on what belongs in config vs CLI - Include anti-patterns and best practices documentation - Enhance example config with design principle explanations
This reverts commit 1dd5264.
- Remove verbose philosophy sections - Add clear option tables for quick reference - Focus on code examples and practical usage - Structure configuration vs CLI usage clearly - Highlight best practices and integration patterns
a22eb9a to
bcd18f3
Compare
- Create pdk.config.ts with shared release configuration - Simplify package.json scripts by removing duplicated parameters - Move common options (pushTag, build, ignoreScripts, autoCreateReleaseBranch) to config - Move filterScopes and AI configuration to config file
AI features should be opt-in to avoid unexpected API costs and security risks
cjraft
approved these changes
Dec 14, 2025
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Added config file support with defineConfig function, refactored types to extract common options, and ensured CLI/Node.js API/Config API are isomorphic.
Usage
Infra
Before
{ "release": "pdk release --tag-prefix 'pdk@' --push-tag --build --ignore-scripts --auto-create-release-branch", "release:dryrun": "pdk release --tag-prefix 'pdk@' --push-tag --build --ignore-scripts --auto-create-release-branch --dry-run", "release:canary": "pdk release --tag-prefix 'pdk@' --canary --push-tag --build --ignore-scripts --auto-create-release-branch", "release:full": "pdk release --tag-prefix 'pdk@' --push-tag --build --ignore-scripts --create-github-release", }After
{ "release": "pdk release ", "release:dryrun": "pdk release --dry-run", "release:canary": "pdk release --canary", "release:full": "pdk release --create-github-release", }For Agent TARS
Before

After
Checklist