fix(comfyui): firmas sin keyword-only para que fn run las despache
El generador de runner de fn run (cmd/fn/pyrunner.go::generatePyRunner)
parsea la signature de la funcion desde el frontmatter del .md y emite
`<param> = _args[i]` por cada parametro posicional. Cuando la firma es
keyword-only (`def f(*, ...)`), el `*` se trata como un nombre de parametro
y genera la linea invalida `* = _args[0]`, que rompe el runner con
`SyntaxError: invalid syntax` antes de ejecutar la funcion.
Se quita el separador keyword-only (`*,`) de la firma — tanto en la `def`
del .py como en el campo `signature:` del .md (la fuente que lee el
indexer y el runner) — convirtiendo los parametros keyword-only en
parametros normales con su mismo default. No cambia nombres, defaults ni
comportamiento: las llamadas con keyword siguen siendo validas.
Afecta a 5 funciones detectadas en el report 0208 §3.3, todas con
SyntaxError reproducido via `fn run <id>`:
- comfyui_fetch_civitai_image_meta
- comfyui_load_skill
- comfyui_save_skill
- comfyui_import_workflow_png
- comfyui_list_skills
Se completa ademas el fix de comfyui_interrupt_queue: el commit 643ebfb8
quito el `*,` del .py pero dejo el `*,` en el campo `signature:` del .md,
que es justo lo que lee el runner — por eso `fn run comfyui_interrupt_queue`
seguia fallando. Aqui se corrige el .md.
Verificado: tras el cambio las 6 despachan sin SyntaxError (las 4 con
primer arg requerido devuelven el `missing required arg` esperado del
runner; list_skills e interrupt_queue ejecutan `ok:true`). Tests
existentes verdes (comfyui_fetch_civitai_image_meta_test.py +
tests/test_comfyui_interrupt_queue.py: 8 passed).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -36,14 +36,14 @@ def _version_filename(version):
|
||||
return None
|
||||
|
||||
|
||||
def comfyui_load_skill(slug: str, *, version=None, library_dir: str = None) -> dict:
|
||||
def comfyui_load_skill(slug: str, version=None, library_dir: str = None) -> dict:
|
||||
"""Lee la receta de una skill (version actual o un snapshot concreto).
|
||||
|
||||
Args:
|
||||
slug: slug de la skill (nombre de su carpeta en la libreria).
|
||||
version: si None, lee `recipe.json` (version actual). Si se pasa (int, "1" o
|
||||
"v1"), lee el snapshot `versions/vN.json`. keyword-only.
|
||||
library_dir: raiz de la libreria. Default `~/ComfyUI/skills_library`. keyword-only.
|
||||
"v1"), lee el snapshot `versions/vN.json`.
|
||||
library_dir: raiz de la libreria. Default `~/ComfyUI/skills_library`.
|
||||
|
||||
Returns:
|
||||
dict ``{ok, recipe, slug, path, version, error}``. En exito ``ok=True`` y `recipe`
|
||||
|
||||
Reference in New Issue
Block a user