Add profile-driven lifecycle rules
This commit is contained in:
parent
322571c02c
commit
908494b712
12 changed files with 700 additions and 14 deletions
|
|
@ -29,7 +29,7 @@ KONTEXTUAL_DELEGATION_SCHEMA = "phase_memory.kontextual.delegation.v1"
|
|||
SERVICE_OPERATIONS = {
|
||||
"profile.plan": {"request": ["profile"], "response": "runtime_envelope"},
|
||||
"graph.import": {"request": ["graph"], "response": "runtime_envelope"},
|
||||
"graph.lifecycle.plan": {"request": ["graph", "parameters"], "response": "runtime_envelope"},
|
||||
"graph.lifecycle.plan": {"request": ["graph", "parameters", "profile?"], "response": "runtime_envelope"},
|
||||
"lifecycle.apply": {"request": ["actions", "review_record"], "response": "runtime_envelope"},
|
||||
"graph.activation.plan": {"request": ["graph", "budget"], "response": "runtime_envelope"},
|
||||
"package.compile": {"request": ["selection"], "response": "runtime_envelope"},
|
||||
|
|
@ -353,6 +353,25 @@ class LocalServiceRunner:
|
|||
return self.runtime.plan_profile(payload["profile"], source_ref=payload.get("source_ref", "service"))
|
||||
if operation == "graph.import":
|
||||
return self.runtime.import_graph(payload["graph"], source_ref=payload.get("source_ref", "service"))
|
||||
if operation == "graph.lifecycle.plan":
|
||||
parameters = payload.get("parameters", {})
|
||||
if payload.get("profile"):
|
||||
return self.runtime.plan_lifecycle_with_profile(
|
||||
payload["profile"],
|
||||
payload["graph"],
|
||||
source_ref=payload.get("source_ref", "service"),
|
||||
profile_source_ref=payload.get("profile_source_ref", "service-profile"),
|
||||
refresh_digests=dict(parameters.get("refresh_digests") or {}),
|
||||
compact_node_ids=tuple(parameters.get("compact_node_ids") or ()),
|
||||
)
|
||||
return self.runtime.plan_lifecycle(
|
||||
payload["graph"],
|
||||
source_ref=payload.get("source_ref", "service"),
|
||||
stale_after_days=parameters.get("stale_after_days"),
|
||||
delete_after_days=parameters.get("delete_after_days"),
|
||||
refresh_digests=dict(parameters.get("refresh_digests") or {}),
|
||||
compact_node_ids=tuple(parameters.get("compact_node_ids") or ()),
|
||||
)
|
||||
if operation == "graph.activation.plan":
|
||||
budget = payload.get("budget", {})
|
||||
return self.runtime.plan_activation(
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue