Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
71 commits
Select commit Hold shift + click to select a range
5149f6f
Ralph: Set context.pageName for EBT events in Streams. Currently cont...
flash1293 Apr 15, 2026
b8e90eb
Merge branch 'main' into main
flash1293 Apr 16, 2026
26da5f3
[streams] Migrate sigevents memory to data stream and workflow archit…
flash1293 May 15, 2026
7ba9fa3
[streams] Migrate sigevents memory to workflow architecture with rest…
flash1293 May 15, 2026
6930ee2
[streams] Wire KI search tool into memory synthesis skill
flash1293 May 15, 2026
9202d5c
[streams] Migrate MemoryServiceImpl to append-only data streams
flash1293 May 15, 2026
4e867a0
[streams] Fix memory tools using request-scoped ES client
flash1293 May 15, 2026
742d2c0
Merge remote-tracking branch 'upstream/main' into jreuter/sigevents-m…
flash1293 May 18, 2026
ebe549b
Merge remote-tracking branch 'upstream/main' into jreuter/sigevents-m…
flash1293 May 22, 2026
f72f82a
[streams] Migrate sigevents memory workflows to managed system workflows
flash1293 May 22, 2026
bdc0068
[streams] Fix review feedback: skill tool limit, prompt IDs, deleted …
flash1293 May 22, 2026
ad9563b
[streams] Degrade gracefully when memory data streams don't exist yet
flash1293 May 22, 2026
70edf59
[streams] Run memory workflows in user's space so executions appear i…
flash1293 May 22, 2026
7a94c7f
[streams] Fix conversation scraper to query Agent Builder conversations
flash1293 May 22, 2026
ccf61a6
Merge remote-tracking branch 'upstream/main' into jreuter/sigevents-m…
flash1293 May 26, 2026
d3b95b4
[streams] Fix memory soft-delete tombstone resolution
flash1293 May 26, 2026
1a26116
[streams] Fix prettier formatting in memory_service
flash1293 May 26, 2026
ff6210a
[streams] Restore deleted memory pages on recreate by name
flash1293 May 26, 2026
3039482
[streams] Add MemoryServiceImpl tests for CRUD and soft-delete
flash1293 May 26, 2026
05d4af1
[streams] Add Scout API smoke test for memory CRUD
flash1293 May 26, 2026
c1affcd
Fix memory collapse/rename semantics and restore post-insight synthesis.
flash1293 May 26, 2026
ea9054a
Merge origin/main into jreuter/sigevents-memory-workflow-migration
flash1293 May 26, 2026
c83f5cb
Merge upstream/main into jreuter/sigevents-memory-workflow-migration
flash1293 May 26, 2026
e82575b
Changes from node scripts/regenerate_moon_projects.js --update
kibanamachine May 26, 2026
109aca5
Changes from node scripts/eslint_all_files --no-cache --fix
kibanamachine May 26, 2026
1a8b77f
[streams] Add sigevents gap detection agent
flash1293 May 18, 2026
3759df9
[streams] Improve memory synthesis with traces and better error messages
flash1293 May 18, 2026
a5080e6
Fix floating promises in register_tools.test.ts
flash1293 May 26, 2026
0008de3
[sigevents] Add system onboarding agent and UI button
flash1293 May 26, 2026
bbfca81
Remove migrated streams memory task types from registered types snaps…
flash1293 May 26, 2026
fae1999
Merge branch 'main' into jreuter/sigevents-memory-workflow-migration
flash1293 May 26, 2026
787956b
Use default Agent Builder agent with load_skill for memory workflows.
flash1293 May 27, 2026
c13ccca
Merge feat/sigevents-system-onboarding-skill into nightshift northstar
flash1293 May 27, 2026
efb77f9
Merge jreuter/sigevents-gap-detection-agent into nightshift northstar
flash1293 May 27, 2026
a0a6348
Nightshift northstar: fix gap skill tools and trim discovery tabs
flash1293 May 27, 2026
95ba384
Route Discoveries tab to insights discovery UI for northstar
flash1293 May 27, 2026
a01f8ea
Prefer Claude Sonnet 4.6 over Opus in default inference stacks
flash1293 May 27, 2026
a939109
Improve sigevents discovery for root-cause analysis with memory and c…
flash1293 May 28, 2026
7188a48
[streams] Replace significant events memory advanced setting with fea…
flash1293 May 28, 2026
cac18c9
Changes from node scripts/eslint_all_files --no-cache --fix
kibanamachine May 28, 2026
9e6a0a8
Address PR review feedback for memory feature flag gating.
flash1293 May 28, 2026
61a844f
[streams] Migrate sigevents memory background jobs to managed workflows
flash1293 May 28, 2026
89a694f
[streams] Migrate sigevents memory storage to append-only data streams
flash1293 May 28, 2026
82c903c
Changes from node scripts/lint_ts_projects --fix
kibanamachine May 28, 2026
ebe27d9
Changes from node scripts/lint_ts_projects --fix
kibanamachine May 28, 2026
27c3d3a
Changes from node scripts/regenerate_moon_projects.js --update
kibanamachine May 28, 2026
f486f44
Changes from node scripts/regenerate_moon_projects.js --update
kibanamachine May 28, 2026
0ae4110
Changes from node scripts/check
kibanamachine May 28, 2026
ec127b1
Changes from node scripts/eslint_all_files --no-cache --fix
kibanamachine May 28, 2026
b7f1bbc
[streams] Fix memory synthesis skill registration at startup
flash1293 May 29, 2026
3ddb2b0
Changes from node scripts/check
kibanamachine May 29, 2026
85a1e86
Add MEMORIES_DATA_STREAM constant for memory service.
flash1293 May 29, 2026
7024308
Merge branch 'main' into jreuter/streams-memory-feature-flag
flash1293 May 29, 2026
6fbfdf5
Merge upstream/main into sigevents memory workflow migration branch
flash1293 May 29, 2026
2f49691
Use scoped ES client for Task Manager memory tasks.
flash1293 May 29, 2026
63308e2
Merge PR #271671: replace memory advanced setting with feature flag
flash1293 May 29, 2026
3b6bb35
Fix memory workflow route guard and wire memory discovery tools
flash1293 May 29, 2026
80bf8a8
Merge upstream/main into jreuter/sigevents-memory-datastream
flash1293 May 29, 2026
f08c4f6
Changes from node scripts/regenerate_moon_projects.js --update
kibanamachine May 29, 2026
e03cb89
Merge upstream/main into jreuter/sigevents-memory-datastream
flash1293 May 29, 2026
6a90e01
Merge upstream/main after #271671 feature flag landed
flash1293 May 29, 2026
8dc35c8
Merge remote branch (moon projects regen)
flash1293 May 29, 2026
dddaa0f
Merge upstream/main into jreuter/sigevents-memory-datastream
flash1293 May 29, 2026
336c1b5
Merge upstream/main
flash1293 May 29, 2026
cb1a53f
Merge sigevents memory datastream into nightshift northstar
flash1293 May 29, 2026
5f4ab66
Merge sigevents memory workflow migration into nightshift northstar
flash1293 May 29, 2026
5e1bf41
Fix merge fallout: dedupe workflow defs and typecheck errors
flash1293 May 29, 2026
7825b4c
[streams] Remove dead memory triggers and share managed workflow client
flash1293 May 29, 2026
7f82250
[sigevents] Emphasize provenance in onboarding memory prompt
flash1293 May 29, 2026
3736b2a
Merge latest sigevents memory workflow migration (#269534)
flash1293 May 29, 2026
ca10b74
Merge system onboarding skill (#269068)
flash1293 May 29, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,19 @@ import {
STREAMS_KI_ONBOARDING_WORKFLOW,
STREAMS_KI_QUERIES_GENERATION_WORKFLOW,
} from './streams_ki';
import {
STREAMS_MEMORY_CONSOLIDATION_WORKFLOW,
STREAMS_MEMORY_CONVERSATION_SCRAPER_WORKFLOW,
STREAMS_MEMORY_SYNTHESIS_WORKFLOW,
} from './streams_memory';
import { EXAMPLE_MANAGED_WORKFLOW } from './workflows_extensions_example';

export { EXAMPLE_MANAGED_WORKFLOW_ID } from './workflows_extensions_example';
export {
STREAMS_MEMORY_SYNTHESIS_WORKFLOW_ID,
STREAMS_MEMORY_CONSOLIDATION_WORKFLOW_ID,
STREAMS_MEMORY_CONVERSATION_SCRAPER_WORKFLOW_ID,
} from './streams_memory';
export {
STREAMS_KI_FEATURES_IDENTIFICATION_WORKFLOW_ID,
STREAMS_KI_QUERIES_GENERATION_WORKFLOW_ID,
Expand All @@ -23,6 +33,9 @@ export {

export const managedWorkflowDefinitions = [
EXAMPLE_MANAGED_WORKFLOW,
STREAMS_MEMORY_SYNTHESIS_WORKFLOW,
STREAMS_MEMORY_CONSOLIDATION_WORKFLOW,
STREAMS_MEMORY_CONVERSATION_SCRAPER_WORKFLOW,
STREAMS_KI_FEATURES_IDENTIFICATION_WORKFLOW,
STREAMS_KI_QUERIES_GENERATION_WORKFLOW,
STREAMS_KI_ONBOARDING_WORKFLOW,
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,130 @@
/*
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
* or more contributor license agreements. Licensed under the "Elastic License
* 2.0", the "GNU Affero General Public License v3.0 only", and the "Server Side
* Public License v 1"; you may not use this file except in compliance with, at
* your election, the "Elastic License 2.0", the "GNU Affero General Public
* License v3.0 only", or the "Server Side Public License, v 1".
*/

import type { ManagedWorkflowDefinition } from '../../types';

export const STREAMS_MEMORY_CONVERSATION_SCRAPER_WORKFLOW_ID =
'system-streams-memory-conversation-scraper';

export const STREAMS_MEMORY_CONVERSATION_SCRAPER_WORKFLOW = {
id: STREAMS_MEMORY_CONVERSATION_SCRAPER_WORKFLOW_ID,
pluginId: 'streams',
version: 3,
yaml: `version: "1"

name: Conversation Scraper
description: >
Extracts durable knowledge from recent AI chat conversations and persists it as
memory wiki pages in .significant_events-memories. Runs on a 4h schedule.
enabled: true
settings:
timeout: "30m"
concurrency:
key: "streams-sigevents-memory-scraper"
strategy: drop
max: 1
tags:
- observability
- streams
- sigevents
- memory
- conversation-scraper

triggers:
- type: scheduled
with:
every: "4h"

consts:
CONVERSATIONS_LOOKBACK: "now-8h"

steps:
- name: get_recent_conversations
type: elasticsearch.request
with:
method: POST
path: '/.chat-conversations/_search'
body:
size: 50
sort:
- updated_at:
order: desc
_source:
- id
- agent_id
- title
- created_at
- updated_at
- rounds
query:
bool:
must:
- range:
updated_at:
gte: '{{ consts.CONVERSATIONS_LOOKBACK }}'
on-failure:
continue: true

- name: check_has_conversations
type: data.set
with:
has_conversations: "\${{ steps.get_recent_conversations.error == null and steps.get_recent_conversations.output.hits.total.value > 0 }}"
conversation_count: "\${{ steps.get_recent_conversations.output.hits.total.value | default: 0 }}"

- name: scrape_conversations
type: if
condition: "\${{ steps.check_has_conversations.output.has_conversations }}"
steps:
- name: extract_knowledge
type: ai.agent
connector-id: ".anthropic-claude-4.6-sonnet-chat_completion"
create-conversation: true
with:
timeout: 1800s
message: |
First, call the load_skill tool with skill path skills/platform/streams/streams-conversation-scraper.
Wait for the skill to load before calling any other tools.

Review the following {{ steps.check_has_conversations.output.conversation_count }} recent conversations and extract any durable knowledge into wiki pages.
Skip conversations that look like automated memory workflow runs (for example, messages that only load streams-memory-* skills).

{{ steps.get_recent_conversations.output.hits.hits | json }}
schema:
type: object
properties:
pages_written:
type: array
description: page_name values of pages written or updated.
items:
type: string
pages_deleted:
type: array
description: page_name values of pages soft-deleted.
items:
type: string
conversations_processed:
type: integer
description: Number of conversations that contained extractable knowledge.
summary:
type: string
description: Brief summary of what knowledge was extracted.
required:
- pages_written
- pages_deleted
- conversations_processed
- summary
on-failure:
continue: false
`,
management: {
lifecycle: 'static',
versionStrategy: 'auto',
enablement: 'restorable',
},
} as const satisfies ManagedWorkflowDefinition;
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
/*
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
* or more contributor license agreements. Licensed under the "Elastic License
* 2.0", the "GNU Affero General Public License v3.0 only", and the "Server Side
* Public License v 1"; you may not use this file except in compliance with, at
* your election, the "Elastic License 2.0", the "GNU Affero General Public
* License v3.0 only", or the "Server Side Public License, v 1".
*/

export {
STREAMS_MEMORY_SYNTHESIS_WORKFLOW,
STREAMS_MEMORY_SYNTHESIS_WORKFLOW_ID,
} from './memory_synthesis';
export {
STREAMS_MEMORY_CONSOLIDATION_WORKFLOW,
STREAMS_MEMORY_CONSOLIDATION_WORKFLOW_ID,
} from './memory_consolidation';
export {
STREAMS_MEMORY_CONVERSATION_SCRAPER_WORKFLOW,
STREAMS_MEMORY_CONVERSATION_SCRAPER_WORKFLOW_ID,
} from './conversation_scraper';
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
/*
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
* or more contributor license agreements. Licensed under the "Elastic License
* 2.0", the "GNU Affero General Public License v3.0 only", and the "Server Side
* Public License v 1"; you may not use this file except in compliance with, at
* your election, the "Elastic License 2.0", the "GNU Affero General Public
* License v3.0 only", or the "Server Side Public License, v 1".
*/

import type { ManagedWorkflowDefinition } from '../../types';

export const STREAMS_MEMORY_CONSOLIDATION_WORKFLOW_ID = 'system-streams-memory-consolidation';

export const STREAMS_MEMORY_CONSOLIDATION_WORKFLOW = {
id: STREAMS_MEMORY_CONSOLIDATION_WORKFLOW_ID,
pluginId: 'streams',
version: 2,
yaml: `version: "1"

name: Memory Consolidation
description: >
Curates the memory wiki by merging duplicates, removing stale entries,
improving categorization, and adding cross-references via the streams-memory-consolidation
skill. Runs on a 24h schedule.
enabled: true
settings:
timeout: "30m"
concurrency:
key: "streams-sigevents-memory-consolidation"
strategy: drop
max: 1
tags:
- observability
- streams
- sigevents
- memory
- consolidation

triggers:
- type: scheduled
with:
every: "24h"

steps:
- name: consolidate_memory
type: ai.agent
connector-id: ".anthropic-claude-4.6-sonnet-chat_completion"
create-conversation: true
with:
timeout: 1800s
message: |
First, call the load_skill tool with skill path skills/platform/streams/streams-memory-consolidation.
Wait for the skill to load before calling any other tools.

Then review the current state of the memory wiki. Start by listing all pages, then work through them methodically. Not every page needs changes — focus on the highest-impact improvements.
schema:
type: object
properties:
pages_written:
type: array
description: page_name values of pages written or updated.
items:
type: string
pages_deleted:
type: array
description: page_name values of pages soft-deleted.
items:
type: string
summary:
type: string
description: Brief summary of what was changed and why.
required:
- pages_written
- pages_deleted
- summary
on-failure:
continue: false
`,
management: {
lifecycle: 'static',
versionStrategy: 'auto',
enablement: 'restorable',
},
} as const satisfies ManagedWorkflowDefinition;
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
/*
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
* or more contributor license agreements. Licensed under the "Elastic License
* 2.0", the "GNU Affero General Public License v3.0 only", and the "Server Side
* Public License v 1"; you may not use this file except in compliance with, at
* your election, the "Elastic License 2.0", the "GNU Affero General Public
* License v3.0 only", or the "Server Side Public License, v 1".
*/

import type { ManagedWorkflowDefinition } from '../../types';

export const STREAMS_MEMORY_SYNTHESIS_WORKFLOW_ID = 'system-streams-memory-synthesis';

export const STREAMS_MEMORY_SYNTHESIS_WORKFLOW = {
id: STREAMS_MEMORY_SYNTHESIS_WORKFLOW_ID,
pluginId: 'streams',
version: 2,
yaml: `version: "1"

name: Memory Synthesis
description: >
Synthesizes significant events knowledge indicators into wiki pages using the
streams-memory-synthesis skill. The default Agent Builder agent loads the skill,
reads existing pages and insights via skill tools, and writes updates via memory_write.
enabled: true
settings:
timeout: "30m"
concurrency:
key: "streams-sigevents-memory"
strategy: drop
max: 1
tags:
- observability
- streams
- sigevents
- memory

triggers:
- type: manual

steps:
- name: synthesize_memory
type: ai.agent
connector-id: ".anthropic-claude-4.6-sonnet-chat_completion"
create-conversation: true
with:
timeout: 1800s
message: |
First, call the load_skill tool with skill path skills/platform/streams/streams-memory-synthesis.
Wait for the skill to load before calling any other tools.

Then review the current state of the memory wiki and the latest significant events insights, and synthesize new or updated wiki pages.
schema:
type: object
properties:
pages_written:
type: array
description: page_name values of pages written or updated in this run.
items:
type: string
pages_deleted:
type: array
description: page_name values of pages soft-deleted in this run.
items:
type: string
summary:
type: string
description: Brief summary of what was synthesized and why.
required:
- pages_written
- pages_deleted
- summary
on-failure:
continue: false
`,
management: {
lifecycle: 'static',
versionStrategy: 'auto',
enablement: 'restorable',
},
} as const satisfies ManagedWorkflowDefinition;
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,5 @@ export const AI_CLASSIFY_FEATURE_ID = 'ai_classify';
*/
export const WORKFLOWS_AI_RECOMMENDED_ENDPOINTS = [
'.anthropic-claude-4.6-sonnet-chat_completion',
'.anthropic-claude-4.6-opus-chat_completion',
'.openai-gpt-5.2-chat_completion',
];
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@ export const AGENT_BUILDER_FAST_INFERENCE_FEATURE_ID = 'agent_builder_fast';

export const AGENT_BUILDER_RECOMMENDED_ENDPOINTS = [
'.anthropic-claude-4.6-sonnet-chat_completion',
'.anthropic-claude-4.6-opus-chat_completion',
'.openai-gpt-5.2-chat_completion',
];

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,7 @@ export const AGENT_BUILDER_BUILTIN_TOOLS = [
`${internalNamespaces.streams}.update_stream`,
`${internalNamespaces.streams}.create_partition`,
`${internalNamespaces.streams}.delete_stream`,
`${internalNamespaces.streams}.memory.write_page`,

// Workflows
`${internalNamespaces.workflows}.validate_workflow`,
Expand Down Expand Up @@ -91,6 +92,8 @@ export type AgentBuilderBuiltinTool = (typeof AGENT_BUILDER_BUILTIN_TOOLS)[numbe
export const AGENT_BUILDER_BUILTIN_AGENTS = [
`${internalNamespaces.search}.agent`,
`${internalNamespaces.security}.agent`,
'sigevents.memory.system-onboarding',
'sigevents.memory.gap-detector',
] as const;

export type AgentBuilderBuiltinAgent = (typeof AGENT_BUILDER_BUILTIN_AGENTS)[number];
Expand Down Expand Up @@ -124,9 +127,13 @@ export const AGENT_BUILDER_BUILTIN_SKILLS = [

// Platform – Streams
'streams-management',
'significant-events-memory',
'knowledge-indicators-management',
'ki-identification-management',
'streams-memory-synthesis',
'streams-memory-consolidation',
'streams-conversation-scraper',
'significant-events-onboarding',
'streams-gap-detection',

// Platform – Workflows
'workflow-authoring',
Expand Down
Loading