[Search] Move ai.prompt, ai.summarize, ai.classify workflows to inference plugin#269392
Conversation
…enceWorkflows plugin Create a new `inferenceWorkflows` plugin at x-pack/platform/plugins/shared/inference_workflows/ that registers the three AI workflow steps via the external workflowsExtensions registration API. This moves inference-specific workflow step logic out of the generic workflows_extensions plugin and into a search-team owned plugin, following the same pattern as agent_builder.
Remove ai.prompt, ai.summarize, ai.classify step definitions from the workflows_extensions plugin now that they are registered externally by the new inferenceWorkflows plugin. Update CODEOWNERS and i18n config.
🔍 Preview links for changed docs |
✅ Vale Linting ResultsNo issues found on modified lines! The Vale linter checks documentation changes against the Elastic Docs style guide. To use Vale locally or report issues, refer to Elastic style guide for Vale. |
…-workflows-to-inference
…-workflows-to-inference
|
We can manually test this by going the Feature Settings page. |
…e deps from workflows_extensions - Move searchInferenceEndpoints optional dep from workflows_extensions to inference_workflows - Call registerInferenceFeatures in inference_workflows plugin setup - Fix SSPL license headers on ai_feature_ids.ts and register_inference_features.ts (x-pack requires EL2.0) - Add InferenceWorkflowsSetupDeps/StartDeps types with searchInferenceEndpoints
…ansavitski/kibana into feature/move-ai-workflows-to-inference
|
@saikatsarkar056 Yeah I fixed that locally but didn't create a commit yet. Locally everything works now |
Add public/eui_icons.d.ts (matching agent_builder pattern) and revert icon imports from src/ back to es/ path.
Replace template literals with variable substitution in defaultMessage with i18n values object pattern as required by the i18n linter.
| defaultMessage: 'Categorizes data into predefined categories using AI', | ||
| }), | ||
| documentation: { | ||
| details: i18n.translate('workflowsExtensionsExample.AiClassifyStep.documentation.details', { |
There was a problem hiding this comment.
FYI: the template literal substitution in defaultMessage here (\The ${AiClassifyStepTypeId} step...) is not valid i18n syntax — the i18n extraction tool requires static strings with variables passed via the values object instead.
This went unnoticed because the workflowsExtensionsExample namespace wasn't registered in .i18nrc.json
…-workflows-to-inference
|
@elastic/workflows-eng, @elastic/kibana-core could you review this pr? |
…-workflows-to-inference
…ansavitski/kibana into feature/move-ai-workflows-to-inference
💛 Build succeeded, but was flaky
Failed CI Steps
Test Failures
Metrics [docs]Module Count
Async chunks
Page load bundle
Unknown metric groupsasync chunk count
History
|
…inference plugin (elastic#269392) ## Summary Resolves elastic/search-team#14019 Moves the three AI workflow steps (`ai.prompt`, `ai.summarize`, `ai.classify`) from the `workflowsExtensions` plugin to a new `inferenceWorkflows` plugin owned by `@elastic/search-kibana`. - Created new `inferenceWorkflows` plugin at `x-pack/platform/plugins/shared/inference_workflows/` - Steps are registered via the external `workflowsExtensions.registerStepDefinition()` API (same pattern as `agent_builder`) - Registers workflows AI features with `searchInferenceEndpoints` so admins can configure model restrictions per step on the Inference Endpoints settings page - Removed AI step code from `workflows_extensions` — it now only contains data.* steps - Updated CODEOWNERS, i18n config, optimizer limits, and README ### Why a new plugin? The `inference` plugin cannot depend on `workflowsExtensions` (circular dependency — `workflowsExtensions` already depends on `inference`). A dedicated plugin keeps dependencies flowing in the right direction and gives the search team clear ownership. ### What changed | Area | Before | After | |------|--------|-------| | AI step registration | Internal in `workflowsExtensions` | External via `inferenceWorkflows` plugin | | License | SSPL triple-license (`src/`) | Elastic License 2.0 (`x-pack/`) | | i18n prefix | `workflowsExtensionsExample.*` | `xpack.inferenceWorkflows.*` | | Inference feature registration | `workflowsExtensions` (stale after merge) | `inferenceWorkflows` plugin setup | | Step logic | **Unchanged** | **Unchanged** | ### Checklist Check the PR satisfies following conditions. Reviewers should verify this PR satisfies this list as well. - [ ] Any text added follows [EUI's writing guidelines](https://elastic.github.io/eui/#/guidelines/writing), uses sentence case text and includes [i18n support](https://github.com/elastic/kibana/blob/main/src/platform/packages/shared/kbn-i18n/README.md) - [ ] [Documentation](https://www.elastic.co/guide/en/kibana/master/development-documentation.html) was added for features that require explanation or tutorials - [x] [Unit or functional tests](https://www.elastic.co/guide/en/kibana/master/development-tests.html) were updated or added to match the most common scenarios - [ ] If a plugin configuration key changed, check if it needs to be allowlisted in the cloud and added to the [docker list](https://github.com/elastic/kibana/blob/main/src/dev/build/tasks/os_packages/docker_generator/resources/base/bin/kibana-docker) - [x] This was checked for breaking HTTP API changes, and any breaking changes have been approved by the breaking-change committee. The `release_note:breaking` label should be applied in these situations. - [ ] [Flaky Test Runner](https://ci-stats.kibana.dev/trigger_flaky_test_runner/1) was used on any tests changed - [x] The PR description includes the appropriate Release Notes section, and the correct `release_note:*` label is applied per the [guidelines](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process) - [x] Review the [backport guidelines](https://docs.google.com/document/d/1VyN5k91e5OVumlc0Gb9RPa3h1ewuPE705nRtioPiTvY/edit?usp=sharing) and apply applicable `backport:*` labels. ## Test plan - [x] 160 unit tests pass in the new location - [ ] Verify AI steps appear in the workflow editor UI - [ ] Verify connector-id selection works for all three steps - [ ] Verify AI steps appear under Workflows AI on the Inference Endpoints settings page - [ ] Verify in serverless mode - [ ] Update `approved_step_definitions.ts` handler hashes after CI build 🤖 Generated with [Claude Code](https://claude.com/claude-code) --------- Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
…inference plugin (elastic#269392) ## Summary Resolves elastic/search-team#14019 Moves the three AI workflow steps (`ai.prompt`, `ai.summarize`, `ai.classify`) from the `workflowsExtensions` plugin to a new `inferenceWorkflows` plugin owned by `@elastic/search-kibana`. - Created new `inferenceWorkflows` plugin at `x-pack/platform/plugins/shared/inference_workflows/` - Steps are registered via the external `workflowsExtensions.registerStepDefinition()` API (same pattern as `agent_builder`) - Registers workflows AI features with `searchInferenceEndpoints` so admins can configure model restrictions per step on the Inference Endpoints settings page - Removed AI step code from `workflows_extensions` — it now only contains data.* steps - Updated CODEOWNERS, i18n config, optimizer limits, and README ### Why a new plugin? The `inference` plugin cannot depend on `workflowsExtensions` (circular dependency — `workflowsExtensions` already depends on `inference`). A dedicated plugin keeps dependencies flowing in the right direction and gives the search team clear ownership. ### What changed | Area | Before | After | |------|--------|-------| | AI step registration | Internal in `workflowsExtensions` | External via `inferenceWorkflows` plugin | | License | SSPL triple-license (`src/`) | Elastic License 2.0 (`x-pack/`) | | i18n prefix | `workflowsExtensionsExample.*` | `xpack.inferenceWorkflows.*` | | Inference feature registration | `workflowsExtensions` (stale after merge) | `inferenceWorkflows` plugin setup | | Step logic | **Unchanged** | **Unchanged** | ### Checklist Check the PR satisfies following conditions. Reviewers should verify this PR satisfies this list as well. - [ ] Any text added follows [EUI's writing guidelines](https://elastic.github.io/eui/#/guidelines/writing), uses sentence case text and includes [i18n support](https://github.com/elastic/kibana/blob/main/src/platform/packages/shared/kbn-i18n/README.md) - [ ] [Documentation](https://www.elastic.co/guide/en/kibana/master/development-documentation.html) was added for features that require explanation or tutorials - [x] [Unit or functional tests](https://www.elastic.co/guide/en/kibana/master/development-tests.html) were updated or added to match the most common scenarios - [ ] If a plugin configuration key changed, check if it needs to be allowlisted in the cloud and added to the [docker list](https://github.com/elastic/kibana/blob/main/src/dev/build/tasks/os_packages/docker_generator/resources/base/bin/kibana-docker) - [x] This was checked for breaking HTTP API changes, and any breaking changes have been approved by the breaking-change committee. The `release_note:breaking` label should be applied in these situations. - [ ] [Flaky Test Runner](https://ci-stats.kibana.dev/trigger_flaky_test_runner/1) was used on any tests changed - [x] The PR description includes the appropriate Release Notes section, and the correct `release_note:*` label is applied per the [guidelines](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process) - [x] Review the [backport guidelines](https://docs.google.com/document/d/1VyN5k91e5OVumlc0Gb9RPa3h1ewuPE705nRtioPiTvY/edit?usp=sharing) and apply applicable `backport:*` labels. ## Test plan - [x] 160 unit tests pass in the new location - [ ] Verify AI steps appear in the workflow editor UI - [ ] Verify connector-id selection works for all three steps - [ ] Verify AI steps appear under Workflows AI on the Inference Endpoints settings page - [ ] Verify in serverless mode - [ ] Update `approved_step_definitions.ts` handler hashes after CI build 🤖 Generated with [Claude Code](https://claude.com/claude-code) --------- Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
…inference plugin (elastic#269392) ## Summary Resolves elastic/search-team#14019 Moves the three AI workflow steps (`ai.prompt`, `ai.summarize`, `ai.classify`) from the `workflowsExtensions` plugin to a new `inferenceWorkflows` plugin owned by `@elastic/search-kibana`. - Created new `inferenceWorkflows` plugin at `x-pack/platform/plugins/shared/inference_workflows/` - Steps are registered via the external `workflowsExtensions.registerStepDefinition()` API (same pattern as `agent_builder`) - Registers workflows AI features with `searchInferenceEndpoints` so admins can configure model restrictions per step on the Inference Endpoints settings page - Removed AI step code from `workflows_extensions` — it now only contains data.* steps - Updated CODEOWNERS, i18n config, optimizer limits, and README ### Why a new plugin? The `inference` plugin cannot depend on `workflowsExtensions` (circular dependency — `workflowsExtensions` already depends on `inference`). A dedicated plugin keeps dependencies flowing in the right direction and gives the search team clear ownership. ### What changed | Area | Before | After | |------|--------|-------| | AI step registration | Internal in `workflowsExtensions` | External via `inferenceWorkflows` plugin | | License | SSPL triple-license (`src/`) | Elastic License 2.0 (`x-pack/`) | | i18n prefix | `workflowsExtensionsExample.*` | `xpack.inferenceWorkflows.*` | | Inference feature registration | `workflowsExtensions` (stale after merge) | `inferenceWorkflows` plugin setup | | Step logic | **Unchanged** | **Unchanged** | ### Checklist Check the PR satisfies following conditions. Reviewers should verify this PR satisfies this list as well. - [ ] Any text added follows [EUI's writing guidelines](https://elastic.github.io/eui/#/guidelines/writing), uses sentence case text and includes [i18n support](https://github.com/elastic/kibana/blob/main/src/platform/packages/shared/kbn-i18n/README.md) - [ ] [Documentation](https://www.elastic.co/guide/en/kibana/master/development-documentation.html) was added for features that require explanation or tutorials - [x] [Unit or functional tests](https://www.elastic.co/guide/en/kibana/master/development-tests.html) were updated or added to match the most common scenarios - [ ] If a plugin configuration key changed, check if it needs to be allowlisted in the cloud and added to the [docker list](https://github.com/elastic/kibana/blob/main/src/dev/build/tasks/os_packages/docker_generator/resources/base/bin/kibana-docker) - [x] This was checked for breaking HTTP API changes, and any breaking changes have been approved by the breaking-change committee. The `release_note:breaking` label should be applied in these situations. - [ ] [Flaky Test Runner](https://ci-stats.kibana.dev/trigger_flaky_test_runner/1) was used on any tests changed - [x] The PR description includes the appropriate Release Notes section, and the correct `release_note:*` label is applied per the [guidelines](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process) - [x] Review the [backport guidelines](https://docs.google.com/document/d/1VyN5k91e5OVumlc0Gb9RPa3h1ewuPE705nRtioPiTvY/edit?usp=sharing) and apply applicable `backport:*` labels. ## Test plan - [x] 160 unit tests pass in the new location - [ ] Verify AI steps appear in the workflow editor UI - [ ] Verify connector-id selection works for all three steps - [ ] Verify AI steps appear under Workflows AI on the Inference Endpoints settings page - [ ] Verify in serverless mode - [ ] Update `approved_step_definitions.ts` handler hashes after CI build 🤖 Generated with [Claude Code](https://claude.com/claude-code) --------- Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>

Summary
Resolves https://github.com/elastic/search-team/issues/14019
Moves the three AI workflow steps (
ai.prompt,ai.summarize,ai.classify) from theworkflowsExtensionsplugin to a newinferenceWorkflowsplugin owned by@elastic/search-kibana.inferenceWorkflowsplugin atx-pack/platform/plugins/shared/inference_workflows/workflowsExtensions.registerStepDefinition()API (same pattern asagent_builder)searchInferenceEndpointsso admins can configure model restrictions per step on the Inference Endpoints settings pageworkflows_extensions— it now only contains data.* stepsWhy a new plugin?
The
inferenceplugin cannot depend onworkflowsExtensions(circular dependency —workflowsExtensionsalready depends oninference). A dedicated plugin keeps dependencies flowing in the right direction and gives the search team clear ownership.What changed
workflowsExtensionsinferenceWorkflowspluginsrc/)x-pack/)workflowsExtensionsExample.*xpack.inferenceWorkflows.*workflowsExtensions(stale after merge)inferenceWorkflowsplugin setupChecklist
Check the PR satisfies following conditions.
Reviewers should verify this PR satisfies this list as well.
release_note:breakinglabel should be applied in these situations.release_note:*label is applied per the guidelinesbackport:*labels.Test plan
approved_step_definitions.tshandler hashes after CI build🤖 Generated with Claude Code