Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
57 commits
Select commit Hold shift + click to select a range
e6b9a2f
feat(orchestration): Explore class registration
michael-johnston Apr 7, 2026
5d44927
refactor(operators): rename OperationCollections to OperatorCollection
michael-johnston Apr 7, 2026
e7bc38b
feat(operators): Add a type for operator functions
michael-johnston Apr 7, 2026
5acfc41
refactor(operators): Update to use new protocol
michael-johnston Apr 7, 2026
c951e8d
refactor(operators): Use pydantic model for operators
michael-johnston Apr 7, 2026
0de3555
refactor(operators): Update tests
michael-johnston Apr 7, 2026
bc11f80
feat(utils): generic de-decoration function
michael-johnston Apr 7, 2026
d761d2d
refactor(actuators): use new util function
michael-johnston Apr 7, 2026
0c6c6c9
test(utils): extraction
michael-johnston Apr 7, 2026
6becc0c
refactor(operators): use undecorated operator classes
michael-johnston Apr 7, 2026
751876c
feat(operator): Validate function call signature
michael-johnston Apr 7, 2026
fdaf9e9
refactor(operator): remove decorator
michael-johnston Apr 8, 2026
34cd692
Merge remote-tracking branch 'origin/main' into maj_operation_update
michael-johnston Apr 8, 2026
be04fd4
refactor(operator): Renaming and enable decoration of explore classes
michael-johnston Apr 8, 2026
0cbe251
refactor(operator): Renaming operator_module parameter operator_refer…
michael-johnston Apr 8, 2026
579d6b6
refactor(operator): Remove support for OperatorModule path.
michael-johnston Apr 8, 2026
f739daa
refactor(operator): Rename param to operator_reference
michael-johnston Apr 8, 2026
f59fbe4
refactor(operator): Use operation_metadata only
michael-johnston Apr 8, 2026
ce200b1
refactor(operator): Use operation_metadata only
michael-johnston Apr 8, 2026
9c526d3
refactor(operator): simplification
michael-johnston Apr 8, 2026
a31da83
refactor(operator): use class decorator
michael-johnston Apr 8, 2026
976288e
refactor(operator): use class decorator
michael-johnston Apr 8, 2026
be03acd
chore(fixes): fix various small issues
michael-johnston Apr 8, 2026
e74b279
chore(fixes): fix various small issues
michael-johnston Apr 8, 2026
15a1c88
refactor(operators): move validation code
michael-johnston Apr 8, 2026
d4344bf
test(ray_tune): additional tests
michael-johnston Apr 8, 2026
96cc132
refactor(operators): simplification
michael-johnston Apr 8, 2026
b1ba181
fix(test): update yaml
michael-johnston Apr 8, 2026
e7f38a6
refactor(operators): Remove unused classes
michael-johnston Apr 9, 2026
718d10d
Apply suggestions from code review
michael-johnston Apr 9, 2026
dcac75a
test(sql): update version string in test
michael-johnston Apr 9, 2026
5ee434a
chore(style): address code review comments
michael-johnston Apr 9, 2026
0d41007
Apply suggestions from code review
michael-johnston Apr 9, 2026
c741efa
fix(tests): version string
michael-johnston Apr 9, 2026
46fad74
Merge remote-tracking branch 'origin/maj_operation_update' into maj_o…
michael-johnston Apr 9, 2026
17d4b5c
chore(typing): update type
michael-johnston Apr 9, 2026
0d6f315
test(operator): test function sig validation
michael-johnston Apr 9, 2026
90d98de
refactor(operator): remove deprecated methods
michael-johnston Apr 10, 2026
41e9b4a
refactor(operator): explore decorator only applies to classes
michael-johnston Apr 10, 2026
2c13836
refactor(operator): make version, parameters model and example parame…
michael-johnston Apr 10, 2026
70989b4
refactor(operator): update to use OperatorMetadata
michael-johnston Apr 10, 2026
1f4444c
Apply suggestions from code review
michael-johnston Apr 10, 2026
ed92d0f
chore(style): remove unnecessary pydantic option
michael-johnston Apr 13, 2026
a927836
refactor(operation): remove characterize and rename search to explore
michael-johnston Apr 13, 2026
1ee4e59
Merge remote-tracking branch 'origin/maj_operation_update' into maj_o…
michael-johnston Apr 13, 2026
d84f6a5
fix(operation): stricter signature validation
michael-johnston Apr 13, 2026
4c20f44
fix(operation): stricter version validation
michael-johnston Apr 13, 2026
049d44d
chore(docs): Update examples to use OperatorReference
michael-johnston Apr 13, 2026
36b9c94
chore(docs): Update error message
michael-johnston Apr 13, 2026
642e1b4
refactor(operators): make explore_operation actual decorator
michael-johnston Apr 13, 2026
e9dded3
refactor(operators): Rename state to discovery_space_manager
michael-johnston Apr 13, 2026
5566b88
docs(operators): creating explore operator docs
michael-johnston Apr 13, 2026
8aabf88
chore: minor tidying.
michael-johnston Apr 13, 2026
a53fda3
feat: detect duplicate operators
michael-johnston Apr 13, 2026
f400d19
chore(style): rearrange
michael-johnston Apr 14, 2026
f742e97
Merge branch 'main' into maj_operation_update
michael-johnston Apr 16, 2026
67ec51d
Merge remote-tracking branch 'origin/main' into maj_operation_update
michael-johnston Apr 16, 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
6 changes: 2 additions & 4 deletions examples/ml-multi-cloud/EXAMPLE_SIMPLE.md
Original file line number Diff line number Diff line change
Expand Up @@ -243,10 +243,8 @@ The operation will end with information like:
config:
operation:
module:
moduleClass: RandomWalk
moduleName: orchestrator.modules.operators.randomwalk
modulePath: .
moduleType: operation
operatorName: random_walk
operationType: search
parameters:
batchSize: 1
numberEntities: 48
Expand Down
6 changes: 2 additions & 4 deletions examples/optimization_test_functions/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -280,10 +280,8 @@ Operation:
metadata: {}
operation:
module:
moduleClass: RayTune
moduleName: ado_ray_tune.operator
modulePath: .
moduleType: operation
operatorName: ray_tune
operationType: search
parameters:
tuneConfig:
max_concurrent_trials: 2
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,8 @@ spaces:
- 'space-abcdef-123456' # Replace with space id from space_transformer_with_objective.yaml
operation:
module:
moduleClass: "RandomWalk"
operatorName: "random_walk"
operationType: "search"
parameters:
numberEntities: 43000
batchSize: 1000
Expand Down
15 changes: 8 additions & 7 deletions orchestrator/cli/resources/operation/template.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
DiscoveryOperationConfiguration,
DiscoveryOperationEnum,
DiscoveryOperationResourceConfiguration,
OperatorFunctionConf,
OperatorReference,
)


Expand Down Expand Up @@ -103,12 +103,13 @@ def template_operation(parameters: AdoTemplateCommandParameters) -> None:

# We are now sure that the operator_type is supported and
# has a value
default_operation_parameters = operators[
parameters.operator_type
].default_configuration_model_for_operation(parameters.operator_name)
operator = operators[parameters.operator_type].operators.get(
parameters.operator_name
)
default_operation_parameters = operator.example_configuration if operator else None

# Certain operators may not have a default configuration model
# Use an OperatorFunctionConf and set the values we have
# Use an OperatorReference and set the values we have
if not default_operation_parameters:

console_print(
Expand All @@ -119,7 +120,7 @@ def template_operation(parameters: AdoTemplateCommandParameters) -> None:
default_operation_parameters = {}

default_operation_configuration = DiscoveryOperationConfiguration(
module=OperatorFunctionConf(
module=OperatorReference(
operatorName=parameters.operator_name,
operationType=parameters.operator_type,
),
Expand Down Expand Up @@ -181,5 +182,5 @@ def operator_type_has_operator(
operator_name
in orchestrator.modules.operators.collections.operationCollectionMap[
operator_type
].function_operations
].operators
)
38 changes: 31 additions & 7 deletions orchestrator/cli/resources/operator/get.py
Original file line number Diff line number Diff line change
Expand Up @@ -42,22 +42,46 @@ def get_operator(parameters: AdoGetCommandParameters) -> None:
)
parameters.output_format = AdoGetSupportedOutputFormats.TABLE

# Build entries for DataFrame
# Handle NAME output format
if parameters.output_format == AdoGetSupportedOutputFormats.NAME:

# Collect all operator names
operator_names = []
for (
collection
) in orchestrator.modules.operators.collections.operationCollectionMap.values():
operator_names.extend(collection.operators.keys())

if parameters.resource_id:
# Single operator: verify it exists and output its name
if parameters.resource_id not in operator_names:
console_print(
f"{ERROR}{parameters.resource_id} is not among the available operators.\n"
f"{HINT}Run {cyan('ado get operators')} to list them.",
stderr=True,
)
raise typer.Exit(1)
console_print(parameters.resource_id)
else:
# Multiple operators: output all names
for operator_name in sorted(operator_names):
console_print(operator_name)
return

# Build entries for TABLE format
entries = []
for (
collection
) in orchestrator.modules.operators.collections.operationCollectionMap.values():
for function_name in collection.function_operations:
for operator_name, operator in collection.operators.items():
entry = {
"OPERATOR": function_name,
"VERSION": collection.function_operation_versions.get(
function_name, ""
),
"OPERATOR": operator_name,
"VERSION": operator.version,
"TYPE": collection.type.value,
}
if parameters.show_details:
entry["DESCRIPTION"] = normalize_and_truncate_at_period(
collection.function_operation_descriptions.get(function_name, "")
operator.description or ""
)
entries.append(entry)

Expand Down
Loading
Loading