@vfarcic/dot-ai 0.119.0 → 0.125.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (50) hide show
  1. package/assets/images/logo.png +0 -0
  2. package/assets/project-setup/discovery-config.json +671 -0
  3. package/assets/project-setup/templates/.github/CODEOWNERS.hbs +25 -0
  4. package/assets/project-setup/templates/.github/FUNDING.yml.hbs +35 -0
  5. package/assets/project-setup/templates/.github/ISSUE_TEMPLATE/bug_report.yml.hbs +175 -0
  6. package/assets/project-setup/templates/.github/ISSUE_TEMPLATE/config.yml.hbs +32 -0
  7. package/assets/project-setup/templates/.github/ISSUE_TEMPLATE/feature_request.yml.hbs +134 -0
  8. package/assets/project-setup/templates/.github/PULL_REQUEST_TEMPLATE.md.hbs +172 -0
  9. package/assets/project-setup/templates/.github/labeler.yml.hbs +123 -0
  10. package/assets/project-setup/templates/.github/release.yml.hbs +51 -0
  11. package/assets/project-setup/templates/.github/workflows/labeler.yml.hbs +21 -0
  12. package/assets/project-setup/templates/.github/workflows/scorecard.yml.hbs +71 -0
  13. package/assets/project-setup/templates/.github/workflows/stale.yml.hbs +57 -0
  14. package/assets/project-setup/templates/ADOPTERS.md.hbs +119 -0
  15. package/assets/project-setup/templates/CODE_OF_CONDUCT.md.hbs +132 -0
  16. package/assets/project-setup/templates/CONTRIBUTING.md.hbs +159 -0
  17. package/assets/project-setup/templates/LICENSE.hbs +933 -0
  18. package/assets/project-setup/templates/NOTICE.hbs +5 -0
  19. package/assets/project-setup/templates/README.md.hbs +11 -0
  20. package/assets/project-setup/templates/SECURITY.md.hbs +44 -0
  21. package/assets/project-setup/templates/SUPPORT.md.hbs +146 -0
  22. package/assets/project-setup/templates/docs/GOVERNANCE.md.hbs +127 -0
  23. package/assets/project-setup/templates/docs/MAINTAINERS.md.hbs +49 -0
  24. package/assets/project-setup/templates/docs/ROADMAP.md.hbs +63 -0
  25. package/assets/project-setup/templates/renovate.json.hbs +38 -0
  26. package/dist/core/ai-provider-factory.d.ts.map +1 -1
  27. package/dist/core/ai-provider-factory.js +22 -5
  28. package/dist/core/ai-provider.interface.d.ts +16 -0
  29. package/dist/core/ai-provider.interface.d.ts.map +1 -1
  30. package/dist/core/capability-scan-workflow.d.ts.map +1 -1
  31. package/dist/core/capability-scan-workflow.js +1 -2
  32. package/dist/core/discovery.d.ts +6 -0
  33. package/dist/core/discovery.d.ts.map +1 -1
  34. package/dist/core/discovery.js +35 -0
  35. package/dist/core/embedding-service.d.ts.map +1 -1
  36. package/dist/core/embedding-service.js +9 -2
  37. package/dist/core/model-config.d.ts +2 -0
  38. package/dist/core/model-config.d.ts.map +1 -1
  39. package/dist/core/model-config.js +3 -1
  40. package/dist/core/providers/provider-debug-utils.d.ts +4 -0
  41. package/dist/core/providers/provider-debug-utils.d.ts.map +1 -1
  42. package/dist/core/providers/provider-debug-utils.js +25 -3
  43. package/dist/core/providers/vercel-provider.d.ts +1 -0
  44. package/dist/core/providers/vercel-provider.d.ts.map +1 -1
  45. package/dist/core/providers/vercel-provider.js +35 -6
  46. package/dist/core/unified-creation-session.js +1 -1
  47. package/dist/tools/project-setup/discovery.js +3 -3
  48. package/dist/tools/project-setup/generate-scope.js +2 -2
  49. package/package.json +4 -1
  50. package/shared-prompts/prd-done.md +45 -4
@@ -0,0 +1,5 @@
1
+ {{projectName}}
2
+ Copyright {{year}} {{copyrightHolder}}
3
+
4
+ This product includes software developed by
5
+ {{copyrightHolder}}{{#if projectUrl}} ({{projectUrl}}){{/if}}.
@@ -0,0 +1,11 @@
1
+ # {{projectName}}
2
+
3
+ ## Description
4
+
5
+ {{projectDescription}}
6
+
7
+ {{#if licenseName}}
8
+ ## License
9
+
10
+ This project is licensed under the {{licenseName}} License - see the LICENSE file for details.
11
+ {{/if}}
@@ -0,0 +1,44 @@
1
+ # Security Policy
2
+
3
+ ## Reporting Security Vulnerabilities
4
+
5
+ **Please do not report security vulnerabilities through public GitHub issues.**
6
+
7
+ If you discover a security vulnerability, please report it by emailing [{{securityEmail}}](mailto:{{securityEmail}}).
8
+
9
+ Please include the following information in your report:
10
+
11
+ - Description of the vulnerability
12
+ - Steps to reproduce the issue
13
+ - Affected versions
14
+ - Potential impact
15
+ - Any suggested fixes (if available)
16
+
17
+ ## Response Timeline
18
+
19
+ We will acknowledge your report within **3 business days** and provide a detailed response within **7 business days** indicating the next steps in handling your report.
20
+
21
+ We will keep you informed of the progress towards a fix and may ask for additional information or guidance.
22
+
23
+ ## Security Updates
24
+
25
+ Security updates will be released as soon as possible after a fix is available. We recommend keeping your installation up to date with the latest releases.
26
+
27
+ {{#if supportedVersions}}
28
+ ## Supported Versions
29
+
30
+ {{supportedVersions}}
31
+ {{/if}}
32
+
33
+ ## Security Best Practices
34
+
35
+ When using {{projectName}}, we recommend:
36
+
37
+ - Keep the software updated to the latest version
38
+ - Follow the principle of least privilege
39
+ - Review and audit your configurations regularly
40
+ {{#if additionalSecurityGuidance}}
41
+ - {{additionalSecurityGuidance}}
42
+ {{/if}}
43
+
44
+ Thank you for helping to keep {{projectName}} and our users safe!
@@ -0,0 +1,146 @@
1
+ # Support
2
+
3
+ Welcome to {{projectName}}! We're here to help you get the most out of the project.
4
+
5
+ ## Getting Help
6
+
7
+ There are several ways to get help with {{projectName}}, listed in order of recommendation:
8
+
9
+ ### 1. Documentation
10
+
11
+ Start with our [documentation]({{docsUrl}}) which includes:
12
+ - Getting started guides
13
+ - API references
14
+ - Troubleshooting guides
15
+ - Best practices
16
+
17
+ Most common questions are answered in the docs.
18
+
19
+ ### 2. GitHub Discussions
20
+
21
+ For questions, ideas, and community discussions, use [GitHub Discussions]({{discussionsUrl}}).
22
+
23
+ **Best for:**
24
+ - How-to questions
25
+ - Feature discussions
26
+ - Sharing use cases
27
+ - Community Q&A
28
+
29
+ {{#if stackOverflowTag}}
30
+ ### Stack Overflow
31
+
32
+ Ask questions on [Stack Overflow](https://stackoverflow.com/questions/tagged/{{stackOverflowTag}}) using the `{{stackOverflowTag}}` tag.
33
+
34
+ **Best for:**
35
+ - Technical questions
36
+ - Implementation guidance
37
+ - Troubleshooting specific scenarios
38
+
39
+ {{/if}}
40
+ {{#if slackUrl}}
41
+ ### Slack
42
+
43
+ Join our Slack workspace at [{{slackUrl}}]({{slackUrl}}) for real-time chat with maintainers and community members.
44
+
45
+ **Best for:**
46
+ - Quick questions
47
+ - Real-time collaboration
48
+ - Community networking
49
+
50
+ {{/if}}
51
+ {{#if discordUrl}}
52
+ ### Discord
53
+
54
+ Join our Discord server at [{{discordUrl}}]({{discordUrl}}) for real-time discussions.
55
+
56
+ **Best for:**
57
+ - Quick questions
58
+ - Real-time support
59
+ - Community chat
60
+
61
+ {{/if}}
62
+ {{#if forumUrl}}
63
+ ### Forum
64
+
65
+ Visit our [community forum]({{forumUrl}}) for threaded discussions and long-form conversations.
66
+
67
+ {{/if}}
68
+
69
+ ## Reporting Bugs
70
+
71
+ **Please use GitHub Issues ONLY for bug reports and feature requests.**
72
+
73
+ Before creating a new issue:
74
+ 1. Check existing issues to avoid duplicates
75
+ 2. Review the [troubleshooting guide]({{docsUrl}}/troubleshooting)
76
+ 3. Gather relevant information (logs, versions, reproduction steps)
77
+
78
+ [Report a bug]({{projectUrl}}/issues/new?template=bug_report.md)
79
+
80
+ ## What NOT to Report as Issues
81
+
82
+ Please **do not** use GitHub Issues for:
83
+ - ❌ General questions (use Discussions{{#if stackOverflowTag}} or Stack Overflow{{/if}})
84
+ - ❌ Support requests (use Discussions{{#if slackUrl}} or Slack{{/if}})
85
+ - ❌ How-to questions (check documentation first)
86
+ {{#if slackUrl}}
87
+ - ❌ Real-time help (use Slack{{#if discordUrl}} or Discord{{/if}})
88
+ {{/if}}
89
+
90
+ Issues that don't follow this guideline may be closed and redirected to the appropriate channel.
91
+
92
+ ## Response Time Expectations
93
+
94
+ {{#if maintainerCount}}
95
+ This project is maintained by {{maintainerCount}} maintainer(s).
96
+ {{/if}}
97
+
98
+ **Response times vary based on:**
99
+ - Severity and impact of the issue
100
+ - Maintainer availability
101
+ - Community engagement
102
+
103
+ **Typical response times:**
104
+ - Critical bugs: {{criticalResponseTime}}
105
+ - Feature requests: {{featureResponseTime}}
106
+ - Questions: {{questionResponseTime}}
107
+
108
+ Please be patient and respectful. This is an open-source project, and responses depend on volunteer time.
109
+
110
+ {{#if commercialSupportAvailable}}
111
+ ## Commercial Support
112
+
113
+ Professional support is available through {{commercialSupportProvider}}.
114
+
115
+ For enterprise support inquiries, contact: {{commercialSupportEmail}}
116
+
117
+ Commercial support includes:
118
+ - Dedicated support team
119
+ - SLA guarantees
120
+ - Custom feature development
121
+ - Priority bug fixes
122
+ - Training and consulting
123
+
124
+ {{/if}}
125
+ ## Security Vulnerabilities
126
+
127
+ **Do not report security vulnerabilities through public GitHub issues.**
128
+
129
+ Please follow our [Security Policy]({{projectUrl}}/security/policy) for responsible disclosure.
130
+
131
+ Report vulnerabilities to: {{securityEmail}}
132
+
133
+ ## Contributing
134
+
135
+ If you'd like to contribute to {{projectName}}, please read our [Contributing Guide]({{projectUrl}}/blob/main/CONTRIBUTING.md).
136
+
137
+ We welcome:
138
+ - Bug fixes
139
+ - Feature implementations
140
+ - Documentation improvements
141
+ - Test coverage
142
+ - Community support
143
+
144
+ ---
145
+
146
+ **Thank you for using {{projectName}}!** We appreciate your patience and engagement with the community.
@@ -0,0 +1,127 @@
1
+ # Project Governance
2
+
3
+ This document describes the governance model for {{projectName}}.
4
+
5
+ ## Overview
6
+
7
+ {{projectName}} is committed to transparent and inclusive decision-making. This document outlines how decisions are made and who has authority over different aspects of the project.
8
+
9
+ ## Roles
10
+
11
+ ### Contributors
12
+
13
+ Anyone who contributes to the project through code, documentation, issues, or discussions.
14
+
15
+ ### Maintainers
16
+
17
+ Maintainers have write access to the repository and are responsible for:
18
+
19
+ - Reviewing and merging pull requests
20
+ - Triaging issues
21
+ - Making technical decisions
22
+ - Ensuring code quality
23
+ - Releasing new versions
24
+
25
+ See [MAINTAINERS.md](MAINTAINERS.md) for the current list of maintainers.
26
+
27
+ {{#if hasCommitters}}
28
+ ### Committers
29
+
30
+ Committers have demonstrated expertise and commitment to the project. They can approve pull requests and participate in technical decisions.
31
+
32
+ {{/if}}
33
+ {{#if hasSteeringCommittee}}
34
+ ### Steering Committee
35
+
36
+ The Steering Committee provides strategic direction and makes decisions on project scope, governance changes, and maintainer appointments.
37
+
38
+ {{/if}}
39
+
40
+ ## Decision-Making Process
41
+
42
+ ### Routine Decisions
43
+
44
+ Day-to-day technical decisions are made by maintainers through:
45
+
46
+ - Pull request reviews
47
+ - Issue discussions
48
+ - Direct commits for minor changes
49
+
50
+ {{#if requiresConsensus}}
51
+ ### Major Decisions
52
+
53
+ Significant changes require consensus among maintainers:
54
+
55
+ - Architecture changes
56
+ - Breaking changes
57
+ - New feature additions
58
+ - Governance changes
59
+
60
+ **Consensus Process:**
61
+
62
+ 1. Proposal is documented in an issue or discussion
63
+ 2. Maintainers discuss and provide feedback
64
+ 3. If no objections within 7 days, consensus is reached
65
+ 4. If objections exist, continue discussion or call for a vote
66
+
67
+ {{/if}}
68
+ {{#if hasVoting}}
69
+ ### Voting
70
+
71
+ When consensus cannot be reached, decisions are made by vote:
72
+
73
+ - Each maintainer has one vote
74
+ - Decisions require {{votingThreshold}} of maintainers to pass
75
+ - Votes are recorded in the relevant issue or pull request
76
+
77
+ {{/if}}
78
+
79
+ ## Becoming a Maintainer
80
+
81
+ Contributors can become maintainers by:
82
+
83
+ 1. **Sustained Contributions** - Regular, high-quality contributions over {{maintainerPeriod}}
84
+ 2. **Technical Expertise** - Demonstrated understanding of the codebase
85
+ 3. **Community Engagement** - Helpful reviews and issue triage
86
+ 4. **Nomination** - Existing maintainer nominates the contributor
87
+ 5. **Approval** - {{#if hasVoting}}Majority vote{{else}}Consensus{{/if}} from current maintainers
88
+
89
+ ## Removing Maintainers
90
+
91
+ Maintainers may step down voluntarily or be removed if:
92
+
93
+ - Inactive for more than {{inactivityPeriod}}
94
+ - Violation of Code of Conduct
95
+ - Consistent disregard for project processes
96
+
97
+ {{#if hasVoting}}
98
+ Removal requires {{votingThreshold}} of remaining maintainers.
99
+ {{else}}
100
+ Removal requires consensus of remaining maintainers.
101
+ {{/if}}
102
+
103
+ ## Changes to Governance
104
+
105
+ Changes to this governance document require:
106
+
107
+ {{#if hasVoting}}
108
+ - Proposal in a GitHub issue
109
+ - Discussion period of at least 14 days
110
+ - {{votingThreshold}} approval from maintainers
111
+ {{else}}
112
+ - Proposal in a GitHub issue
113
+ - Discussion period of at least 14 days
114
+ - Consensus from all active maintainers
115
+ {{/if}}
116
+
117
+ ## Questions or Concerns
118
+
119
+ If you have questions about governance, please:
120
+
121
+ 1. Open a GitHub Discussion
122
+ 2. Contact the maintainers at {{maintainerEmail}}
123
+ 3. Attend a community meeting (if applicable)
124
+
125
+ ---
126
+
127
+ *This governance model may evolve as the project grows. All changes will be documented in this file's history.*
@@ -0,0 +1,49 @@
1
+ # Maintainers
2
+
3
+ This document lists the maintainers of {{projectName}}.
4
+
5
+ ## Current Maintainers
6
+
7
+ {{#if maintainersList}}
8
+ {{maintainersList}}
9
+ {{else}}
10
+ | Name | Email | GitHub | Role |
11
+ |------|-------|--------|------|
12
+ | {{maintainerName}} | {{maintainerEmail}} | @{{maintainerGithub}} | Lead Maintainer |
13
+ {{/if}}
14
+
15
+ ## Responsibilities
16
+
17
+ Maintainers are responsible for:
18
+
19
+ - Reviewing and merging pull requests
20
+ - Triaging and responding to issues
21
+ - Making technical decisions about the project
22
+ - Ensuring code quality and project standards
23
+ - Releasing new versions
24
+ - Mentoring contributors
25
+
26
+ ## Becoming a Maintainer
27
+
28
+ Maintainers are typically promoted from active contributors who have:
29
+
30
+ - Demonstrated expertise in the project
31
+ - Contributed high-quality code and reviews
32
+ - Shown commitment to the project's success
33
+ - Earned the trust of existing maintainers
34
+
35
+ If you're interested in becoming a maintainer, start by contributing regularly and engaging with the community.
36
+
37
+ ## Emeritus Maintainers
38
+
39
+ {{#if emeritusMaintainers}}
40
+ We thank the following people for their past contributions as maintainers:
41
+
42
+ {{emeritusMaintainers}}
43
+ {{else}}
44
+ _No emeritus maintainers at this time._
45
+ {{/if}}
46
+
47
+ ---
48
+
49
+ *Note: This list may be incomplete. Maintainers can direct questions to the appropriate person.*
@@ -0,0 +1,63 @@
1
+ # Roadmap
2
+
3
+ This document outlines the planned direction and priorities for {{projectName}}.
4
+
5
+ {{#if roadmapIntro}}
6
+ {{roadmapIntro}}
7
+ {{else}}
8
+ This roadmap is a living document and may change based on community feedback and project priorities.
9
+ {{/if}}
10
+
11
+ {{#if githubProjectUrl}}
12
+ **Live Progress**: Track detailed progress on our [GitHub Project Board]({{githubProjectUrl}})
13
+ {{/if}}
14
+
15
+ ## Short-term (Next 1-3 Months)
16
+
17
+ {{#if shortTermGoals}}
18
+ {{shortTermGoals}}
19
+ {{else}}
20
+ - Core functionality implementation
21
+ - Documentation and examples
22
+ - Initial testing and bug fixes
23
+ - First stable release
24
+ {{/if}}
25
+
26
+ ## Medium-term (3-6 Months)
27
+
28
+ {{#if mediumTermGoals}}
29
+ {{mediumTermGoals}}
30
+ {{else}}
31
+ - Additional features based on user feedback
32
+ - Performance improvements
33
+ - Expanded documentation
34
+ - Community building
35
+ {{/if}}
36
+
37
+ ## Long-term (6-12 Months)
38
+
39
+ {{#if longTermGoals}}
40
+ {{longTermGoals}}
41
+ {{else}}
42
+ - Advanced features and integrations
43
+ - Ecosystem development
44
+ - Stability and maturity improvements
45
+ {{/if}}
46
+
47
+ {{#if futureConsiderations}}
48
+ ## Future Considerations
49
+
50
+ {{futureConsiderations}}
51
+ {{/if}}
52
+
53
+ ## How to Contribute
54
+
55
+ We welcome contributions toward any roadmap items:
56
+
57
+ 1. Check the [issue tracker]({{repositoryUrl}}/issues) for related work
58
+ 2. Comment on issues or open discussions
59
+ 3. See [CONTRIBUTING.md](../CONTRIBUTING.md) for guidelines
60
+
61
+ ---
62
+
63
+ *This roadmap reflects current plans but is subject to change.*
@@ -0,0 +1,38 @@
1
+ {
2
+ "$schema": "https://docs.renovatebot.com/renovate-schema.json",
3
+ "extends": [
4
+ "config:recommended"
5
+ ],
6
+ "labels": ["dependencies"],
7
+ "prConcurrentLimit": {{prConcurrentLimit}},
8
+ "prHourlyLimit": {{prHourlyLimit}},
9
+ "dependencyDashboard": {{enableDependencyDashboard}},
10
+ {{#isTrue enableDependencyDashboard}}
11
+ "dependencyDashboardTitle": "Dependency Dashboard",
12
+ {{/isTrue}}
13
+ "osvVulnerabilityAlerts": {{enableVulnerabilityAlerts}},
14
+ "schedule": [
15
+ "{{schedule}}"
16
+ ],
17
+ "packageRules": [
18
+ {{#isTrue groupDependencies}}
19
+ {
20
+ "description": "Group all non-major dependencies together",
21
+ "matchUpdateTypes": ["minor", "patch", "pin", "digest"],
22
+ "groupName": "all non-major dependencies",
23
+ "groupSlug": "all-minor-patch"
24
+ },
25
+ {{/isTrue}}
26
+ {
27
+ "description": "Automerge non-major updates",
28
+ "matchUpdateTypes": ["minor", "patch", "pin", "digest"],
29
+ "automerge": {{automergeMinor}}
30
+ },
31
+ {
32
+ "description": "Security updates",
33
+ "matchUpdateTypes": ["security"],
34
+ "labels": ["security"],
35
+ "automerge": {{automergeSecurity}}
36
+ }
37
+ ]
38
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"ai-provider-factory.d.ts","sourceRoot":"","sources":["../../src/core/ai-provider-factory.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EACL,UAAU,EACV,gBAAgB,EACjB,MAAM,yBAAyB,CAAC;AA+BjC;;;;;;;;;;;;;;GAcG;AACH,qBAAa,iBAAiB;IAC5B;;;;;;OAMG;IACH,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,gBAAgB,GAAG,UAAU;IAgCnD;;;;;;;;;;;;;;OAcG;IACH,MAAM,CAAC,aAAa,IAAI,UAAU;IA2DlC;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,uBAAuB;IAItC;;;;;OAKG;IACH,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAMrD;;;;OAIG;IACH,MAAM,CAAC,qBAAqB,IAAI,MAAM,EAAE;IAMxC;;;;;OAKG;IACH,MAAM,CAAC,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;CAGxD;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,IAAI,UAAU,CAE7C"}
1
+ {"version":3,"file":"ai-provider-factory.d.ts","sourceRoot":"","sources":["../../src/core/ai-provider-factory.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EACL,UAAU,EACV,gBAAgB,EACjB,MAAM,yBAAyB,CAAC;AA+BjC;;;;;;;;;;;;;;GAcG;AACH,qBAAa,iBAAiB;IAC5B;;;;;;OAMG;IACH,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,gBAAgB,GAAG,UAAU;IAgCnD;;;;;;;;;;;;;;OAcG;IACH,MAAM,CAAC,aAAa,IAAI,UAAU;IA6ElC;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,uBAAuB;IAItC;;;;;OAKG;IACH,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAMrD;;;;OAIG;IACH,MAAM,CAAC,qBAAqB,IAAI,MAAM,EAAE;IAMxC;;;;;OAKG;IACH,MAAM,CAAC,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;CAGxD;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,IAAI,UAAU,CAE7C"}
@@ -108,13 +108,15 @@ class AIProviderFactory {
108
108
  return new noop_provider_1.NoOpAIProvider();
109
109
  }
110
110
  // Get API key for the provider
111
+ // PRD #194: Support CUSTOM_LLM_API_KEY for custom LLM endpoints
112
+ // Priority: 1. CUSTOM_LLM_API_KEY, 2. Provider-specific key (e.g., OPENAI_API_KEY)
111
113
  const apiKeyEnvVar = PROVIDER_ENV_KEYS[providerType];
112
114
  if (!apiKeyEnvVar) {
113
115
  process.stderr.write(`WARNING: No API key environment variable defined for provider: ${providerType}. ` +
114
116
  `Falling back to NoOpProvider.\n`);
115
117
  return new noop_provider_1.NoOpAIProvider();
116
118
  }
117
- const apiKey = process.env[apiKeyEnvVar];
119
+ const apiKey = process.env.CUSTOM_LLM_API_KEY || process.env[apiKeyEnvVar];
118
120
  if (!apiKey) {
119
121
  process.stderr.write(`INFO: ${apiKeyEnvVar} not configured. ` +
120
122
  `AI features will be unavailable. ` +
@@ -125,20 +127,35 @@ class AIProviderFactory {
125
127
  const model = process.env.AI_MODEL;
126
128
  // Get debug mode setting
127
129
  const debugMode = process.env.DEBUG_DOT_AI === 'true';
130
+ // PRD #194: Get custom endpoint URL for OpenAI-compatible LLM APIs
131
+ // Use CUSTOM_LLM_BASE_URL for LLM endpoints (separate from OPENAI_BASE_URL used for embeddings)
132
+ const baseURL = process.env.CUSTOM_LLM_BASE_URL;
133
+ // PRD #194: Detect OpenRouter and override provider type
134
+ // OpenRouter requires dedicated provider for proper tool calling support
135
+ let effectiveProviderType = providerType;
136
+ if (baseURL && baseURL.includes('openrouter.ai')) {
137
+ effectiveProviderType = 'openrouter';
138
+ }
139
+ else if (baseURL) {
140
+ // Generic custom endpoint (Ollama, vLLM, LiteLLM, etc.)
141
+ effectiveProviderType = 'custom';
142
+ }
128
143
  // If SDK override to 'vercel', use VercelProvider for all providers
129
144
  if (sdkPreference === 'vercel') {
130
145
  return new vercel_provider_1.VercelProvider({
131
- provider: providerType,
146
+ provider: effectiveProviderType,
132
147
  apiKey,
133
148
  model,
134
- debugMode
149
+ debugMode,
150
+ baseURL
135
151
  });
136
152
  }
137
153
  return this.create({
138
- provider: providerType,
154
+ provider: effectiveProviderType,
139
155
  apiKey,
140
156
  model,
141
- debugMode
157
+ debugMode,
158
+ baseURL
142
159
  });
143
160
  }
144
161
  /**
@@ -69,6 +69,22 @@ export interface AIProviderConfig {
69
69
  model?: string;
70
70
  /** Enable debug mode for logging AI interactions */
71
71
  debugMode?: boolean;
72
+ /** Custom endpoint URL for OpenAI-compatible APIs (PRD #194)
73
+ *
74
+ * Enables connection to:
75
+ * - Self-hosted LLMs (Ollama, vLLM, LocalAI)
76
+ * - Alternative SaaS providers (Azure OpenAI, LiteLLM, OpenRouter)
77
+ * - Internal inference services
78
+ *
79
+ * Example values:
80
+ * - Ollama: "http://ollama-service:11434/v1"
81
+ * - vLLM: "http://vllm-service:8000/v1"
82
+ * - Azure OpenAI: "https://YOUR_RESOURCE.openai.azure.com/openai/deployments/YOUR_DEPLOYMENT"
83
+ *
84
+ * Note: Models must support 8K+ output tokens. Custom endpoint will receive
85
+ * maxOutputTokens=8192 in API requests.
86
+ */
87
+ baseURL?: string;
72
88
  }
73
89
  /**
74
90
  * Tool definition for AI providers
@@ -1 +1 @@
1
- {"version":3,"file":"ai-provider.interface.d.ts","sourceRoot":"","sources":["../../src/core/ai-provider.interface.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ai-provider.interface.d.ts","sourceRoot":"","sources":["../../src/core/ai-provider.interface.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"capability-scan-workflow.d.ts","sourceRoot":"","sources":["../../src/core/capability-scan-workflow.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"capability-scan-workflow.d.ts","sourceRoot":"","sources":["../../src/core/capability-scan-workflow.ts"],"names":[],"mappings":"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"}
@@ -492,8 +492,7 @@ async function handleScanning(session, args, logger, requestId, capabilityServic
492
492
  await discovery.connect();
493
493
  // Get complete CRD definition if it's a custom resource
494
494
  if (resourceName.includes('.')) {
495
- const crdOutput = await discovery.executeKubectl(['get', 'crd', resourceName, '-o', 'yaml']);
496
- resourceDefinition = crdOutput;
495
+ resourceDefinition = await discovery.getCRDDefinition(resourceName);
497
496
  logger.info('Found complete CRD definition for capability analysis', {
498
497
  requestId,
499
498
  sessionId: session.sessionId,
@@ -150,6 +150,12 @@ export declare class KubernetesDiscovery {
150
150
  explainResource(resource: string, options?: {
151
151
  field?: string;
152
152
  }): Promise<string>;
153
+ /**
154
+ * Get CRD definition with cleaned-up YAML (removes massive annotations and unnecessary fields)
155
+ * @param crdName - Name of the CRD (e.g., 'workflows.argoproj.io')
156
+ * @returns Cleaned YAML string suitable for AI prompts
157
+ */
158
+ getCRDDefinition(crdName: string): Promise<string>;
153
159
  fingerprintCluster(): Promise<ClusterFingerprint>;
154
160
  private getResourceCounts;
155
161
  private getNetworkingInfo;
@@ -1 +1 @@
1
- {"version":3,"file":"discovery.d.ts","sourceRoot":"","sources":["../../src/core/discovery.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"discovery.d.ts","sourceRoot":"","sources":["../../src/core/discovery.ts"],"names":[],"mappings":"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"}