Skip to content

Commit b306152

Browse files
committed
feat: implement configurable execution pipeline with Step protocol
- Add pipeline types: Step, BaseStep, StepResult, PipelineContext, PipelineTrace, ExecutionStrategy, StrategyInfo, PipelineEngine - Extract 11 hardcoded executor steps into BuiltinStep classes - Add build_standard/internal/testing/performance_strategy() factories - Add Executor.strategy parameter (backward compatible, optional) - Add call_with_trace() / call_async_with_trace() methods - Add register_strategy(), list_strategies(), describe_pipeline() introspection Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> Signed-off-by: tercel <tercel.yi@gmail.com>
1 parent 2bdc933 commit b306152

8 files changed

Lines changed: 2290 additions & 0 deletions

File tree

src/apcore/__init__.py

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -180,6 +180,24 @@
180180
# Events
181181
from apcore.events import A2ASubscriber, ApCoreEvent, EventEmitter, EventSubscriber, WebhookSubscriber
182182

183+
# Pipeline
184+
from apcore.pipeline import (
185+
BaseStep,
186+
ExecutionStrategy,
187+
PipelineAbortError,
188+
PipelineContext,
189+
PipelineTrace,
190+
Step,
191+
StepNameDuplicateError,
192+
StepNotFoundError,
193+
StepNotRemovableError,
194+
StepNotReplaceableError,
195+
StepResult,
196+
StepTrace,
197+
StrategyInfo,
198+
StrategyNotFoundError,
199+
)
200+
183201
# Trace Context
184202
from apcore.trace_context import TraceContext, TraceParent
185203

@@ -511,6 +529,21 @@ def enable(module_id: str, reason: str = "Enabled via APCore client") -> dict[st
511529
# Version
512530
"VersionIncompatibleError",
513531
"negotiate_version",
532+
# Pipeline
533+
"Step",
534+
"BaseStep",
535+
"StepResult",
536+
"PipelineContext",
537+
"PipelineTrace",
538+
"StepTrace",
539+
"ExecutionStrategy",
540+
"StrategyInfo",
541+
"PipelineAbortError",
542+
"StepNotFoundError",
543+
"StepNotRemovableError",
544+
"StepNotReplaceableError",
545+
"StepNameDuplicateError",
546+
"StrategyNotFoundError",
514547
# System Modules
515548
"register_sys_modules",
516549
"register_subscriber_type",

0 commit comments

Comments
 (0)