Make project MCP workflows self-synchronizing
This commit is contained in:
parent
a30f021a52
commit
73165c9f51
17 changed files with 1124 additions and 56 deletions
|
|
@ -382,18 +382,44 @@ class CanonicalApplicationService:
|
|||
applier_id=self.applier_id,
|
||||
application=self.applier.apply,
|
||||
)
|
||||
index_result = self.index.build()
|
||||
index_check = self.index.check()
|
||||
refresh_errors: list[dict[str, object]] = []
|
||||
index_result: dict[str, object] | None = None
|
||||
index_check: dict[str, object] | None = None
|
||||
try:
|
||||
index_result = self.index.build()
|
||||
index_check = self.index.check()
|
||||
except DocForgeError as error:
|
||||
refresh_errors.append(
|
||||
{
|
||||
"component": "index",
|
||||
"error": error.as_dict(),
|
||||
"remediation": {
|
||||
"tool": "docforge_sync",
|
||||
"arguments": {},
|
||||
},
|
||||
}
|
||||
)
|
||||
renders: list[dict[str, object]] = []
|
||||
config = self.project.descriptor.render
|
||||
if config is not None:
|
||||
for view in config.views:
|
||||
renders.append(self.rendering.render(view.view_id))
|
||||
try:
|
||||
renders.append(self.rendering.render(view.view_id))
|
||||
except DocForgeError as error:
|
||||
refresh_errors.append(
|
||||
{
|
||||
"component": "render",
|
||||
"view_id": view.view_id,
|
||||
"error": error.as_dict(),
|
||||
}
|
||||
)
|
||||
return {
|
||||
**applied,
|
||||
"derived_refresh": {
|
||||
"status": "degraded" if refresh_errors else "ok",
|
||||
"index": index_result,
|
||||
"check": index_check,
|
||||
"renders": renders,
|
||||
"errors": refresh_errors,
|
||||
},
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue