Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
69 commits
Select commit Hold shift + click to select a range
e02f1da
Initial API designer
Thenujan-Nagaratnam Apr 21, 2026
aaa1a81
Remove mock test document and manage views
Thenujan-Nagaratnam Apr 21, 2026
6177c76
Fix linter errors
Thenujan-Nagaratnam Apr 21, 2026
64fcba6
Add notification when opening API spec
Thenujan-Nagaratnam Apr 22, 2026
47a65e5
Improve ai readiness validation rules
Thenujan-Nagaratnam Apr 22, 2026
45b3c8b
Improve governance dashboard
Thenujan-Nagaratnam Apr 23, 2026
1711225
Add fixsuggestion to rules
Thenujan-Nagaratnam Apr 23, 2026
cd3aa36
Improve reports
Thenujan-Nagaratnam Apr 23, 2026
97f56ff
Refactor analyze view
Thenujan-Nagaratnam Apr 23, 2026
afae2e3
Improve ai readiness report
Thenujan-Nagaratnam Apr 24, 2026
2c5a1a7
Remove unwanted response in ai readiness summary
Thenujan-Nagaratnam Apr 24, 2026
ba96ae0
Improve report
Thenujan-Nagaratnam Apr 25, 2026
d9cbe9b
Remove unwanted mcp tool
Thenujan-Nagaratnam Apr 25, 2026
afe8214
Add LLM based validation for ai readiness
Thenujan-Nagaratnam Apr 26, 2026
61c9337
Add copilot based agent validation
Thenujan-Nagaratnam Apr 26, 2026
ab7e4c4
Improve report UI
Thenujan-Nagaratnam Apr 26, 2026
bea0949
Fix score calculation mismatch
Thenujan-Nagaratnam Apr 26, 2026
92b9ef2
Remove asyncapi support
Thenujan-Nagaratnam Apr 26, 2026
c4c886c
Improve LLM based validation card for stale state
Thenujan-Nagaratnam Apr 26, 2026
19e6133
Add import json support for schemas
Thenujan-Nagaratnam Apr 26, 2026
a65a415
Improve spectral ruleset fetching
Thenujan-Nagaratnam Apr 26, 2026
822d1ce
Update docs
Thenujan-Nagaratnam Apr 26, 2026
9cc95c7
Change to global storage for LLM based eval
Thenujan-Nagaratnam Apr 26, 2026
ea387ac
Improve report experience
Thenujan-Nagaratnam Apr 27, 2026
e75be35
Add agent skills
Thenujan-Nagaratnam Apr 27, 2026
51b475d
Add openinapidesigner tool
Thenujan-Nagaratnam Apr 27, 2026
9f947c9
Add report generation and reading logic
Thenujan-Nagaratnam Apr 27, 2026
7c2df1b
Remove create OpenAPI panel
Thenujan-Nagaratnam Apr 27, 2026
47f80b1
Improve UI
Thenujan-Nagaratnam Apr 27, 2026
fcf23cd
Fix minor issues
Thenujan-Nagaratnam Apr 27, 2026
e3043c9
Improve UI
Thenujan-Nagaratnam Apr 28, 2026
c3f637e
Update skills
Thenujan-Nagaratnam Apr 28, 2026
20d54e4
Update report breakdown section to be consistent
Thenujan-Nagaratnam Apr 28, 2026
a5833b9
Fix minor issues
Thenujan-Nagaratnam Apr 28, 2026
63b17e4
Add docs
Thenujan-Nagaratnam Apr 28, 2026
edf5543
Update opencopilotchat to openaichat
Thenujan-Nagaratnam Apr 28, 2026
e1307f9
Improve code
Thenujan-Nagaratnam Apr 28, 2026
912cf16
Improve UI
Thenujan-Nagaratnam Apr 28, 2026
16ecb32
Improve report
Thenujan-Nagaratnam Apr 28, 2026
7067d53
Integrate LLM analysis with report
Thenujan-Nagaratnam Apr 28, 2026
66e6bd3
Ddd resolveaifinding tool
Thenujan-Nagaratnam Apr 28, 2026
a773dc4
Fix UI background
Thenujan-Nagaratnam Apr 28, 2026
f517b83
Fix OWASP issues filtering
Thenujan-Nagaratnam Apr 29, 2026
4fb8f43
Refactor governance code
Thenujan-Nagaratnam Apr 29, 2026
ee23bd0
Fix caching issue with aianalysis
Thenujan-Nagaratnam Apr 29, 2026
399b11c
Fix LLM score directly being used in overall score
Thenujan-Nagaratnam Apr 29, 2026
386ea60
Add weights for severity in score calculation
Thenujan-Nagaratnam Apr 29, 2026
21f7fa4
Fix report overflow issue
Thenujan-Nagaratnam Apr 29, 2026
2ee8637
Update skills
Thenujan-Nagaratnam Apr 29, 2026
3d19a08
Add rules inside extension
Thenujan-Nagaratnam Apr 29, 2026
68a69bc
Improve ai analysis card
Thenujan-Nagaratnam Apr 29, 2026
b2fd252
Refactor code
Thenujan-Nagaratnam Apr 30, 2026
4207b43
Update pnpm-lock file
Thenujan-Nagaratnam Apr 30, 2026
6fd6962
Update license headers
Thenujan-Nagaratnam Apr 30, 2026
1d1558e
Add eol for missing files
Thenujan-Nagaratnam Apr 30, 2026
66d0a35
Update API designer version
Thenujan-Nagaratnam Apr 30, 2026
af83a3a
Remove createapifrompanel command
Thenujan-Nagaratnam Apr 30, 2026
f5ed5a3
Add minor changes
Thenujan-Nagaratnam Apr 30, 2026
877e77b
Update extension marketplace details
Thenujan-Nagaratnam Apr 30, 2026
74c7c7f
Add icon png file
Thenujan-Nagaratnam Apr 30, 2026
ab1aa4e
Update pnpm-lock file
Thenujan-Nagaratnam Apr 30, 2026
1f8192e
Update skill ai readiness rules
Thenujan-Nagaratnam Apr 30, 2026
062af86
Add core ai fixes
Thenujan-Nagaratnam Apr 30, 2026
507dc5c
Fix AI related bugs
Thenujan-Nagaratnam Apr 30, 2026
92bdeea
Add extension ai changes
Thenujan-Nagaratnam Apr 30, 2026
8e0d1cd
Update readme and icon, remove api-platform skill
Thenujan-Nagaratnam Apr 30, 2026
6d2ef33
Add minor UI changes
Thenujan-Nagaratnam Apr 30, 2026
418be1a
Update readme
Thenujan-Nagaratnam Apr 30, 2026
7e6a80a
Update categories
Thenujan-Nagaratnam Apr 30, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
481 changes: 474 additions & 7 deletions common/config/rush/pnpm-lock.yaml

Large diffs are not rendered by default.

8 changes: 5 additions & 3 deletions workspaces/api-designer/api-designer-core/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -12,13 +12,15 @@
},
"author": "WSO2",
"devDependencies": {
"typescript": "5.8.3",
"@typescript-eslint/parser": "8.32.1",
"@types/js-yaml": "4.0.9",
"@typescript-eslint/eslint-plugin": "8.32.1",
"eslint": "9.27.0"
"@typescript-eslint/parser": "8.32.1",
"eslint": "9.27.0",
"typescript": "5.8.3"
},
"dependencies": {
"@types/vscode-webview": "1.57.3",
"js-yaml": "4.1.1",
"vscode-messenger-common": "0.4.5"
},
"repository": {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
/**
* Copyright (c) 2026, WSO2 LLC. (https://www.wso2.com) All Rights Reserved.
*
* WSO2 LLC. licenses this file to you under the Apache License,
* Version 2.0 (the "License"); you may not use this file except
* in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/

import type { SpectralRuleset } from '../rpc-types/api-designer-visualizer/analyze';

/** JSONPath / key inside each ruleset YAML where Spectral `rules` live */
export const DEFAULT_SPECTRAL_RULESET_CONTENT_PATH = 'rulesetContent';

function ruleset(
name: string,
fileName: string,
sourceFolder: string
): SpectralRuleset {
return {
name,
sourceFolder,
fileName,
rulesetContentPath: DEFAULT_SPECTRAL_RULESET_CONTENT_PATH
};
}

/**
* Default governance rulesets when no `.api-platform/config.yaml` (or empty list) — Analyze / governance dashboards.
* Caller must provide the base source folder that contains bundled rulesets.
*/
export function getDefaultGovernanceSpectralRulesets(baseSourceFolder: string): SpectralRuleset[] {
const normalizedBase = (baseSourceFolder || '').replace(/[\\/]+$/, '');
return [
ruleset('WSO2 REST API AI Readiness Guidelines', 'ai-readiness.yaml', normalizedBase),
ruleset('OWASP Top 10 Security', 'owasp_top_10.yaml', normalizedBase),
ruleset('WSO2 REST API Design Guidelines', 'wso2_rest_api_design_guidelines.yaml', normalizedBase)
];
}
99 changes: 99 additions & 0 deletions workspaces/api-designer/api-designer-core/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
*/

// export * from "./rpc";
export * from "./constants/default-spectral-rulesets";
export * from "./state-machine-types";
export * from "./vscode";
// ------ History class and interface -------->
Expand All @@ -25,3 +26,101 @@ export * from "./history";
export * from "./rpc-types/api-designer-visualizer/index";
export * from "./rpc-types/api-designer-visualizer/rpc-type";
export * from "./rpc-types/api-designer-visualizer/types";
// Explicit exports for RPC method names
export {
getAPISpecContent,
writeAPISpecContent,
validateApiSpec,
fetchRulesetsFromFolder,
getApplicableRulesets,
readFile,
writeFile,
deleteFile,
getWorkspaceFileTree,
checkAIAvailability,
getAllSpectralRulesets,
getGovernance,
generateWithAI,
} from "./rpc-types/api-designer-visualizer/rpc-type";

// ------ Copilot RPC types -------->
export * from "./utils/yaml-utils";
// Export error handling utilities with explicit exports to avoid conflicts
export {
APIDesignerError,
FileOperationError,
APIDesignerValidationError,
RPCError,
getErrorMessage,
getErrorCode,
isAPIDesignerError,
withErrorHandling
} from "./utils/error-handling";

// ------ AI Prompts -------->
export * from "./utils/ai-prompts";
// Explicit exports for new prompt functions to ensure they're available
export {
buildFixValidationIssuesPrompt,
buildGenericEditPrompt
} from "./utils/ai-prompts";
export type {
ValidationFixContext,
GenericEditContext
} from "./utils/ai-prompts";

// ------ Core Utilities -------->
export * from "./utils/spec-type-utils";
export * from "./utils/spec-helpers";

// ------ API Specification Support (OpenAPI) -------->
export * from "./specs/constants";
export * from "./specs/detector";
export * from "./specs/specification-service";
export * from "./specs/openapi-service";
export * from "./specs/specification-factory";
// Explicit exports for commonly used functions and types
export { detectSpecType, detectSpecTypeFromPath } from "./specs/detector";
export { ApiSpecType } from "./specs/constants";
// Export types with explicit re-exports to avoid conflicts
export type {
ApiSpecification,
SpecInfo,
SpecParseResult,
SpecValidationResult,
SpecComparisonResult,
SpecDifference
} from "./specs/types";
export type {
Info,
Contact,
License,
Server,
ServerVariable,
Schema,
ReferenceObject,
SecurityScheme,
OAuthFlows,
OAuthFlow,
SpecMetadata
} from "./specs/common-types";
export type {
OpenAPISpec,
Paths,
PathItem,
Operation as OpenAPIOperation,
Parameter as OpenAPIParameter,
RequestBody,
Responses,
Response,
MediaType,
Example,
Header,
Link,
EncodingProperty,
Components,
Callback,
SecurityRequirement,
Tag as OpenAPITag,
ExternalDocumentation as OpenAPIExternalDocumentation
} from "./specs/openapi-types";
Loading
Loading