* Fix Skill storage provider routing
Honor the provider persisted with each Skill version for read and delete operations while keeping nacos_config as the legacy fallback.
Assisted-by: Claude Code
* Add global AI storage provider selection
Keep resource-specific provider properties as compatibility overrides and clarify optional storage builder discovery.
Assisted-by: Claude Code
* Keep AI resource storage routing stable
Use each persisted version provider for reads, draft replacements, and deletes, and skip existing Prompt versions before migration writes.
Assisted-by: Claude Code
* test: align AgentSpec concurrent save reflection
Pass the persisted storage provider argument when invoking the concurrent AgentSpec save helper from tests.
Assisted-by: Claude Code
* test: complete Prompt storage descriptor fixture
Include the persisted file list required by the strict storage cleanup path after rebasing the provider routing changes.
Assisted-by: Claude Code
* Fix ARD filter compatibility
* Remove ARD naming from AI search internals
* Document durable AI resource index enhancement
Assisted-by: Claude Code
* Extend AI resource index task schemas
Assisted-by: Claude Code
* Make AI resource index enhancement durable
Assisted-by: Claude Code
* Fix AI resource index task consumer injection
Assisted-by: Claude Code
* Refactor durable AI resource task model
Generalize the durable search-index task contract with versioned payload and result data while preserving lease, retry, and revision fencing semantics.
Assisted-by: Claude Code
* Update AI resource task schemas
Replace the search-index-specific task table with the generic AI resource task schema across supported databases and align Derby persistence test resources.
Assisted-by: Claude Code
* Use epoch millis for AI resource task scheduling
Assisted-by: Claude Code
* Improve AI resource index convergence
Harden task fencing, lease handling, reconciliation, vector readiness, and ARD filter compatibility.
Assisted-by: Claude Code
* fix: use latest published MCP version by default
Resolve omitted MCP versions through latestPublishedVersion so draft versions do not trigger repeated index reconciliation. Add unit and Admin API regression coverage.
Assisted-by: Claude Code
* fix: fence AI resource task leases
Preserve active leases across coalesced lifecycle schedules and use a monotonic lease token to fence stale workers from renewing, completing, retrying, or releasing newer work.
Assisted-by: Claude Code
* test: align MCP latest published version lookup
Assisted-by: Claude Code
Honor provider order before first-wins registration, align built-in plugin routers with the same conflict policy, and remove datasource fallback to an unrelated dialect.
Make standard configuration keys authoritative by presence and enable AI resource import unless explicitly disabled. Update bilingual plugin specs and tests accordingly.
Assisted-by: Claude Code
* [ISSUE #15475] Integrate AI resource importer plugin configuration
Unify AI resource importer builders with plugin configuration management and remove the redundant source abstraction.
Assisted-by: Claude Code
* [ISSUE #15475] Align AI importer OpenAPI error assertions
Update the focused admin and console API integration tests to match the unified plugin lookup error message.\n\nAssisted-by: Claude Code
Centralize plugin execution capabilities and separate core module gates from plugin state. Migrate AI pipeline services to direct PluginConfigSpec lifecycle management with unified runtime ordering and legacy configuration compatibility.
Assisted-by: Claude Code
Complete unified plugin state enforcement for runtime-routed plugin families.
Add static configuration refresh snapshots, source resolver registry, restart-only field isolation, and shared plugin type capabilities before production plugins adopt PluginConfigSpec.
Assisted-by: Claude Code
Move built-in MCP registry and Skill well-known importers into a default AI importer plugin.\n\nAdd source provider SPI and nacos.plugin.ai.importer preset configuration.\n\nUpdate import plugin specs and tests.\n\nAssisted-by: Claude Code
* [ISSUE #15183] Add AI resource import SPI models
Add the AI resource import plugin type, public import API DTOs, and plugin importer SPI/model contracts for source-based search, validate, and execute flows.
Assisted-by: Claude Code
* [ISSUE #15183] Refine AI resource import models
Remove the unsupported dependency import abstraction from the initial API and SPI contract, align importer models with Spotless formatting, and add JSON serialization coverage for the public import DTOs.
Assisted-by: Claude Code
* feat(pipeline): Update configuration format for plugin-based pipeline support
Change-Id: I8bd95ca1bd44e9c723a179293da206e0d16ce89c
* feat: Update visibility constants and improve test assertions for skill operations
Change-Id: I139d8d8f4dfb5f55cc953b10ec6db5040ddc9497
- Add PublishPipelineBackwardCompatibilityTest to verify SKILL and PROMPT routing unchanged after AGENTSPEC addition
- Add PublishPipelineManagerRoutingTest for pipeline service routing logic validation
- Add PublishPipelineResourceTypePropertyTest for resource type property verification
- Add PublishPipelineResourceTypeTest for resource type enum behavior
- Add AgentSpecPipelineCompletionPropertyTest for pipeline completion property validation
- Add AgentSpecSubmitPipelineAvailabilityPropertyTest for pipeline availability checks
- Add AgentSpecSubmitResourceTypePropertyTest for resource type property validation
- Fix AgentSpecOperationServiceImpl to use AGENTSPEC resource type instead of SKILL
- Update pipeline execution to transition to reviewing status before direct publish when pipeline is disabled
- Update vite.config.ts and PublishPipelineResourceType plugin model for compatibility
- Ensures backward compatibility while supporting new AGENTSPEC resource type in publish pipeline
Change-Id: I6ba374bfca441fc6aaacea7eb15d271e5d233b52
Co-developed-by: Kiro <noreply@kiro.dev>
* refactor(ai): Fix AiResourceStorage SPI loading timing issue with Spring lifecycle
- Refactor AiResourceStorageRouter to be a pure router without SPI loading
- Add AiResourceStorageInitializer as Spring bridge layer
- Use ApplicationReadyEvent to trigger SPI loading after Spring context ready
* refactor(ai): Refactor SkillIndexManifest to support multi-version and labels
* feat(ai): add AI plugin SPI for publish pipeline and resource storage
* feat(ai): add skill lifecycle admin APIs
* refactor(ai/skills): remove legacy skill register/update apis
* feat(ai): add skill lifecycle functions for skill operation service
* feat(ai): add skill lifecycle functions for skill operation service
* feat(ai/skills): complete console skill lifecycle APIs
Add draft/submit/publish/labels/online/offline endpoints for console and wire proxy/handlers for inner/remote/noop modes.
Update maintainer client skill APIs to support lifecycle operations and drop legacy register/update methods.
Made-with: Cursor
* refactor(ai): role-based skill API response and fix deleteSkill ordering
- Add SkillAdminDetail and SkillAdminListItem as admin-specific view models
- getSkillDetail returns SkillAdminDetail with version governance info
- listSkills returns Page<SkillAdminListItem> with full governance metadata
- searchSkills simplified to return only name+description for client
- deleteSkill order changed to meta->version->storage (reverse of creation)
- Add deleteByNameAndType to AiResourceVersionPersistService to avoid
cross-type deletion when removing skill versions
- Remove backward-compatible pipeline legacy code (findSkillPipelines,
PipelineSnapshot, parsePipelineSnapshot) as no historical data exists
* refactor(ai): propagate SkillAdminDetail/SkillAdminListItem through handler chain
- SkillHandler interface updated to return SkillAdminDetail and Page<SkillAdminListItem>
- SkillInnerHandler, SkillNoopHandler delegate to updated interface
- SkillRemoteHandler adapts maintainer client Skill/SkillBasicInfo to
SkillAdminDetail/SkillAdminListItem for handler contract compat ai/src- console/src/main/java/com/alibaba/nacos/console/handler/ai/SkillHandler.javle console/src/main/java/com/alibaba/nacos/cons
* feat(ai): add AI plugin SPI for publish pipeline and resource storage
* feature(ai): implement ai resorce storage
* feature(ai): impl ai resource meta and version persistence
* feat(ai): add skill lifecycle admin APIs
* refactor(ai/skills): remove legacy skill register/update apis
* feat(ai): add skill lifecycle functions for skill operation service
* feat(ai): add skill lifecycle functions for skill operation service
* feat(ai): support embedded storage for ai resource persistence
Add embedded Derby implementations for ai_resource and ai_resource_version persistence and gate external JDBC implementations by storage mode. Also add MySQL DDL for ai_resource tables in distribution schema.
Made-with: Cursor
- Add PipelineConfiguration for Spring bean setup and executor service management
- Implement PublishPipelineExecutor for executing pipeline workflows with async support
- Add PublishPipelineManager for managing pipeline lifecycle and node execution
- Create PipelineConfigProvider SPI with FilePipelineConfigProvider implementation
- Add pipeline model classes: PipelineConfig, PipelineExecution, PipelineExecutionResult, PipelineExecutionStatus, PipelineNodeConfig, PipelineNodeResult, PipelineCallback
- Implement PipelineExecutionRepository and PipelineExecutionRepositoryImpl for persistence
- Add comprehensive property-based and integration tests using jqwik and mockito
- Update database schemas (MySQL and Derby) to support pipeline execution storage
- Add nacos-ai-plugin dependency and update pom.xml with test dependencies (jqwik, jackson-databind, h2, mockito)
- Update PublishPipelineResult and PublishPipelineServiceBuilder in
plugin module for integration
Change-Id: I9e8d7c4340231ec33bf883f7d0f513ecb75b88d2
Co-developed-by: Kiro <noreply@kiro.dev>