./node_modules/typescript/lib/es/diagnosticMessages.generated.json:229:  "An_async_iterator_must_have_a_next_method_2519": "Un iterador de asincronía debe tener un método \"next()\".",
./node_modules/typescript/lib/es/diagnosticMessages.generated.json:273:  "An_iterator_must_have_a_next_method_2489": "Un iterador debe tener un método \"next()\".",
./node_modules/typescript/lib/es/diagnosticMessages.generated.json:279:  "An_object_s_Symbol_hasInstance_method_must_return_a_boolean_value_for_it_to_be_used_on_the_right_han_2861": "El método '[Symbol.hasInstance]' de un objeto debe devolver un valor booleano para que se use en el lado derecho de una expresión \"instanceof\".",
./node_modules/typescript/lib/es/diagnosticMessages.generated.json:285:  "Annotate_everything_with_types_from_JSDoc_95043": "Anotar todo con tipos de JSDoc",
./node_modules/typescript/lib/es/diagnosticMessages.generated.json:300:  "Assertions_require_every_name_in_the_call_target_to_be_declared_with_an_explicit_type_annotation_2775": "Las aserciones requieren que todos los nombres del destino de llamada se declaren con una anotación de tipo explícito.",
./node_modules/typescript/lib/es/diagnosticMessages.generated.json:320:  "Build_all_projects_including_those_that_appear_to_be_up_to_date_6636": "Compilar todos los proyectos, incluidos los que aparecen actualizados.",
./node_modules/typescript/lib/es/diagnosticMessages.generated.json:350:  "Cannot_assign_to_private_method_0_Private_methods_are_not_writable_2803": "No se puede asignar al método privado \"{0}\". No se puede escribir en los métodos privados.",
./node_modules/typescript/lib/es/diagnosticMessages.generated.json:355:  "Cannot_delegate_iteration_to_value_because_the_next_method_of_its_iterator_expects_type_1_but_the_co_2766": "No se puede delegar la iteración en un valor porque el método \"next\" de su iterador espera el tipo \"{1}\", pero el generador que lo contiene siempre enviará \"{0}\".",
./node_modules/typescript/lib/es/diagnosticMessages.generated.json:393:  "Cannot_iterate_value_because_the_next_method_of_its_iterator_expects_type_1_but_array_destructuring__2765": "No se puede iterar el valor porque el método \"next\" de su iterador espera el tipo \"{1}\", pero la desestructuración de matriz siempre enviará \"{0}\".",
./node_modules/typescript/lib/es/diagnosticMessages.generated.json:394:  "Cannot_iterate_value_because_the_next_method_of_its_iterator_expects_type_1_but_array_spread_will_al_2764": "No se puede iterar el valor porque el método \"next\" de su iterador espera el tipo \"{1}\", pero la propagación de matriz siempre enviará \"{0}\".",
./node_modules/typescript/lib/es/diagnosticMessages.generated.json:395:  "Cannot_iterate_value_because_the_next_method_of_its_iterator_expects_type_1_but_for_of_will_always_s_2763": "No se puede iterar el valor porque el método \"next\" de su iterador espera el tipo \"{1}\", pero for-of siempre enviará \"{0}\".",
./node_modules/typescript/lib/es/diagnosticMessages.generated.json:417:  "Change_all_jsdoc_style_types_to_TypeScript_95030": "Cambiar todos los tipos de jsdoc-style a TypeScript",
./node_modules/typescript/lib/es/diagnosticMessages.generated.json:418:  "Change_all_jsdoc_style_types_to_TypeScript_and_add_undefined_to_nullable_types_95031": "Cambiar todos los tipos de jsdoc-style a TypeScript (y agregar \"| undefined\" a los tipos que aceptan valores NULL)",
./node_modules/typescript/lib/es/diagnosticMessages.generated.json:423:  "Check_that_the_arguments_for_bind_call_and_apply_methods_match_the_original_function_6697": "Compruebe que los argumentos de los métodos 'bind', 'call' y 'apply' coinciden con la función original.",
./node_modules/typescript/lib/es/diagnosticMessages.generated.json:483:  "Control_what_method_is_used_to_detect_module_format_JS_files_1475": "Controlar qué método se usa para detectar archivos JS con formato de módulo.",
./node_modules/typescript/lib/es/diagnosticMessages.generated.json:487:  "Convert_all_const_to_let_95102": "Convertir todo \"const\" en \"let\"",
./node_modules/typescript/lib/es/diagnosticMessages.generated.json:489:  "Convert_all_invalid_characters_to_HTML_entity_code_95101": "Convertir todos los caracteres no válidos al código de entidad HTML",
./node_modules/typescript/lib/es/diagnosticMessages.generated.json:490:  "Convert_all_re_exported_types_to_type_only_exports_1365": "Convertir todos los tipos reexportados en exportaciones solo de tipo",
./node_modules/typescript/lib/es/diagnosticMessages.generated.json:492:  "Convert_all_to_async_functions_95066": "Convertir todo en funciones asincrónicas",
./node_modules/typescript/lib/es/diagnosticMessages.generated.json:493:  "Convert_all_to_bigint_numeric_literals_95092": "Convertir todo en literales numéricos bigint",
./node_modules/typescript/lib/es/diagnosticMessages.generated.json:494:  "Convert_all_to_default_imports_95035": "Convertir todo en importaciones predeterminadas",
./node_modules/typescript/lib/es/diagnosticMessages.generated.json:495:  "Convert_all_type_literals_to_mapped_type_95021": "Convertir todos los literales de tipo en un tipo asignado",
./node_modules/typescript/lib/es/diagnosticMessages.generated.json:496:  "Convert_all_typedef_to_TypeScript_types_95177": "Convertir typedef en todos los tipos TypeScript.",
./node_modules/typescript/lib/es/diagnosticMessages.generated.json:557:  "Declare_method_0_90023": "Declarar el método \"{0}\"",
./node_modules/typescript/lib/es/diagnosticMessages.generated.json:558:  "Declare_private_method_0_90038": "Declarar el método \"{0}\" privado",
./node_modules/typescript/lib/es/diagnosticMessages.generated.json:561:  "Declare_static_method_0_90024": "Declarar el método estático \"{0}\"",
./node_modules/typescript/lib/es/diagnosticMessages.generated.json:581:  "Delete_the_outputs_of_all_projects_6365": "Eliminar las salidas de todos los proyectos.",
./node_modules/typescript/lib/es/diagnosticMessages.generated.json:690:  "Enable_strict_bind_call_and_apply_methods_on_functions_6214": "Habilite los métodos estrictos \"bind\", \"call\" y \"apply\" en las funciones.",
./node_modules/typescript/lib/es/diagnosticMessages.generated.json:793:  "File_0_is_not_listed_within_the_file_list_of_project_1_Projects_must_list_all_files_or_use_an_includ_6307": "El archivo \"{0}\" no está en la lista de archivos del proyecto \"{1}\". Los proyectos deben enumerar todos los archivos o usar un patrón \"include\".",
./node_modules/typescript/lib/es/diagnosticMessages.generated.json:794:  "File_0_is_not_under_rootDir_1_rootDir_is_expected_to_contain_all_source_files_6059": "El archivo '{0}' no está en \"rootDir\" '{1}'. Se espera que \"rootDir\" contenga todos los archivos de origen.",
./node_modules/typescript/lib/es/diagnosticMessages.generated.json:824:  "Fix_all_detected_spelling_errors_95026": "Corregir todos los errores ortográficos detectados",
./node_modules/typescript/lib/es/diagnosticMessages.generated.json:826:  "Fix_all_implicit_this_errors_95107": "Corregir todos los errores de \"this\" implícitos",
./node_modules/typescript/lib/es/diagnosticMessages.generated.json:827:  "Fix_all_incorrect_return_type_of_an_async_functions_90037": "Corregir todos los tipos de valor devuelto incorrectos de las funciones asincrónicas",
./node_modules/typescript/lib/es/diagnosticMessages.generated.json:828:  "Fix_all_with_type_only_imports_95182": "Corregir todo con importaciones de solo tipo",
./node_modules/typescript/lib/es/diagnosticMessages.generated.json:935:  "Infer_all_types_from_usage_95023": "Deducir todos los tipos del uso",
./node_modules/typescript/lib/es/diagnosticMessages.generated.json:950:  "Install_all_missing_types_packages_95033": "Instalar todos los paquetes de tipos que faltan",
./node_modules/typescript/lib/es/diagnosticMessages.generated.json:1033:  "Method_0_cannot_have_an_implementation_because_it_is_marked_abstract_1245": "El método '{0}' no puede tener ninguna implementación porque está marcado como abstracto.",
./node_modules/typescript/lib/es/diagnosticMessages.generated.json:1034:  "Method_0_of_exported_interface_has_or_is_using_name_1_from_private_module_2_4101": "El método \"{0}\" de la interfaz exportada tiene o usa el nombre \"{1}\" del módulo privado \"{2}\".",
./node_modules/typescript/lib/es/diagnosticMessages.generated.json:1035:  "Method_0_of_exported_interface_has_or_is_using_private_name_1_4102": "El método \"{0}\" de la interfaz exportada tiene o usa el nombre privado \"{1}\".",
./node_modules/typescript/lib/es/diagnosticMessages.generated.json:1036:  "Method_must_have_an_explicit_return_type_annotation_with_isolatedDeclarations_9008": "El método debe tener una anotación de tipo de valor devuelto explícita con --isolatedDeclarations.",
./node_modules/typescript/lib/es/diagnosticMessages.generated.json:1037:  "Method_not_implemented_95158": "El método no está implementado.",
./node_modules/typescript/lib/es/diagnosticMessages.generated.json:1103:  "Not_all_constituents_of_type_0_are_callable_2756": "No se puede llamar a todos los constituyentes del tipo \"{0}\".",
./node_modules/typescript/lib/es/diagnosticMessages.generated.json:1104:  "Not_all_constituents_of_type_0_are_constructable_2760": "No se pueden construir todos los constituyentes del tipo \"{0}\".",
./node_modules/typescript/lib/es/diagnosticMessages.generated.json:1130:  "Only_public_and_protected_methods_of_the_base_class_are_accessible_via_the_super_keyword_2340": "Solo es posible tener acceso a los métodos públicos y protegidos de la clase base mediante la palabra clave \"super\".",
./node_modules/typescript/lib/es/diagnosticMessages.generated.json:1197:  "Parameter_0_of_method_from_exported_interface_has_or_is_using_name_1_from_private_module_2_4074": "El parámetro '{0}' del método de la interfaz exportada tiene o usa el nombre '{1}' del módulo '{2}' privado.",
./node_modules/typescript/lib/es/diagnosticMessages.generated.json:1198:  "Parameter_0_of_method_from_exported_interface_has_or_is_using_private_name_1_4075": "El parámetro '{0}' del método de la interfaz exportada tiene o usa el nombre privado '{1}'.",
./node_modules/typescript/lib/es/diagnosticMessages.generated.json:1199:  "Parameter_0_of_public_method_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_c_4071": "El parámetro '{0}' del método público de la clase exportada tiene o usa el nombre '{1}' del módulo {2} externo, pero no se puede nombrar.",
./node_modules/typescript/lib/es/diagnosticMessages.generated.json:1200:  "Parameter_0_of_public_method_from_exported_class_has_or_is_using_name_1_from_private_module_2_4072": "El parámetro '{0}' del método público de la clase exportada tiene o usa el nombre '{1}' del módulo {2} privado.",
./node_modules/typescript/lib/es/diagnosticMessages.generated.json:1201:  "Parameter_0_of_public_method_from_exported_class_has_or_is_using_private_name_1_4073": "El parámetro '{0}' del método público de la clase exportada tiene o usa el nombre privado '{1}'.",
./node_modules/typescript/lib/es/diagnosticMessages.generated.json:1202:  "Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_name_1_from_external_module__4068": "El parámetro '{0}' del método estático público de la clase exportada tiene o usa el nombre '{1}' del módulo {2} externo, pero no se puede nombrar.",
./node_modules/typescript/lib/es/diagnosticMessages.generated.json:1203:  "Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_name_1_from_private_module_2_4069": "El parámetro '{0}' del método estático público de la clase exportada tiene o usa el nombre '{1}' del módulo {2} privado.",
./node_modules/typescript/lib/es/diagnosticMessages.generated.json:1204:  "Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_private_name_1_4070": "El parámetro '{0}' del método estático público de la clase exportada tiene o usa el nombre privado '{1}'.",
./node_modules/typescript/lib/es/diagnosticMessages.generated.json:1224:  "Print_all_of_the_files_read_during_the_compilation_6653": "Imprima todos los archivos leídos durante la compilación.",
./node_modules/typescript/lib/es/diagnosticMessages.generated.json:1307:  "Public_method_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named_4098": "El método público \"{0}\" de la clase exportada tiene o usa el nombre \"{1}\" del módulo externo {2}, pero no puede tener nombre.",
./node_modules/typescript/lib/es/diagnosticMessages.generated.json:1308:  "Public_method_0_of_exported_class_has_or_is_using_name_1_from_private_module_2_4099": "El método público \"{0}\" de la clase exportada tiene o usa el nombre \"{1}\" del módulo privado \"{2}\".",
./node_modules/typescript/lib/es/diagnosticMessages.generated.json:1309:  "Public_method_0_of_exported_class_has_or_is_using_private_name_1_4100": "El método público \"{0}\" de la clase exportada tiene o usa el nombre privado \"{1}\".",
./node_modules/typescript/lib/es/diagnosticMessages.generated.json:1313:  "Public_static_method_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_4095": "El método estático público \"{0}\" de la clase exportada tiene o usa el nombre \"{1}\" del módulo externo {2}, pero no puede tener nombre.",
./node_modules/typescript/lib/es/diagnosticMessages.generated.json:1314:  "Public_static_method_0_of_exported_class_has_or_is_using_name_1_from_private_module_2_4096": "El método estático público \"{0}\" de la clase exportada tiene o usa el nombre \"{1}\" del módulo privado \"{2}\".",
./node_modules/typescript/lib/es/diagnosticMessages.generated.json:1315:  "Public_static_method_0_of_exported_class_has_or_is_using_private_name_1_4097": "El método estático público \"{0}\" de la clase exportada tiene o usa el nombre privado \"{1}\".",
./node_modules/typescript/lib/es/diagnosticMessages.generated.json:1336:  "Remove_all_unnecessary_override_modifiers_95163": "Quitar todos los modificadores \"override\" innecesarios",
./node_modules/typescript/lib/es/diagnosticMessages.generated.json:1337:  "Remove_all_unnecessary_uses_of_await_95087": "Quitar todos los usos innecesarios de \"await\"",
./node_modules/typescript/lib/es/diagnosticMessages.generated.json:1338:  "Remove_all_unreachable_code_95051": "Quitar todo el código inaccesible",
./node_modules/typescript/lib/es/diagnosticMessages.generated.json:1340:  "Remove_braces_from_all_arrow_function_bodies_with_relevant_issues_95115": "Quitar las llaves de todos los cuerpos de función de flecha con problemas relevantes",
./node_modules/typescript/lib/es/diagnosticMessages.generated.json:1360:  "Replace_all_unused_infer_with_unknown_90031": "Reemplazar todos los elementos \"infer\" sin usar por \"unknown\"",
./node_modules/typescript/lib/es/diagnosticMessages.generated.json:1403:  "Return_type_of_method_from_exported_interface_has_or_is_using_name_0_from_private_module_1_4056": "El tipo de valor devuelto del método de la interfaz exportada tiene o usa el nombre '{0}' del módulo '{1}' privado.",
./node_modules/typescript/lib/es/diagnosticMessages.generated.json:1404:  "Return_type_of_method_from_exported_interface_has_or_is_using_private_name_0_4057": "El tipo de valor devuelto del método de la interfaz exportada tiene o usa el nombre privado '{0}'.",
./node_modules/typescript/lib/es/diagnosticMessages.generated.json:1408:  "Return_type_of_public_method_from_exported_class_has_or_is_using_name_0_from_external_module_1_but_c_4053": "El tipo de valor devuelto del método público de la clase exportada tiene o usa el nombre '{0}' del módulo {1} externo, pero no se puede nombrar.",
./node_modules/typescript/lib/es/diagnosticMessages.generated.json:1409:  "Return_type_of_public_method_from_exported_class_has_or_is_using_name_0_from_private_module_1_4054": "El tipo de valor devuelto del método público de la clase exportada tiene o usa el nombre '{0}' del módulo {1} privado.",
./node_modules/typescript/lib/es/diagnosticMessages.generated.json:1410:  "Return_type_of_public_method_from_exported_class_has_or_is_using_private_name_0_4055": "El tipo de valor devuelto del método público de la clase exportada tiene o usa el nombre privado '{0}'.",
./node_modules/typescript/lib/es/diagnosticMessages.generated.json:1414:  "Return_type_of_public_static_method_from_exported_class_has_or_is_using_name_0_from_external_module__4050": "El tipo de valor devuelto del método estático público de la clase exportada tiene o usa el nombre '{0}' del módulo {1} externo, pero no se puede nombrar.",
./node_modules/typescript/lib/es/diagnosticMessages.generated.json:1415:  "Return_type_of_public_static_method_from_exported_class_has_or_is_using_name_0_from_private_module_1_4051": "El tipo de valor devuelto del método estático público de la clase exportada tiene o usa el nombre '{0}' del módulo {1} privado.",
./node_modules/typescript/lib/es/diagnosticMessages.generated.json:1416:  "Return_type_of_public_static_method_from_exported_class_has_or_is_using_private_name_0_4052": "El tipo de valor devuelto del método estático público de la clase exportada tiene o usa el nombre privado '{0}'.",
./node_modules/typescript/lib/es/diagnosticMessages.generated.json:1429:  "Rewrite_all_as_indexed_access_types_95034": "Reescribir todo como tipos de acceso indexados",
./node_modules/typescript/lib/es/diagnosticMessages.generated.json:1439:  "Searching_all_ancestor_node_modules_directories_for_fallback_extensions_Colon_0_6418": "Buscando extensiones de reserva en todos los directorios de node_modules antecesores: {0}.",
./node_modules/typescript/lib/es/diagnosticMessages.generated.json:1440:  "Searching_all_ancestor_node_modules_directories_for_preferred_extensions_Colon_0_6417": "Buscando extensiones preferidas en todos los directorios de node_modules antecesores: {0}.",
./node_modules/typescript/lib/es/diagnosticMessages.generated.json:1457:  "Skip_type_checking_all_d_ts_files_6693": "Omita la comprobación de tipos de todos los archivos .d.ts.",
./node_modules/typescript/lib/es/diagnosticMessages.generated.json:1477:  "Specify_an_output_folder_for_all_emitted_files_6678": "Especifique una carpeta de salida para todos los archivos emitidos.",
./node_modules/typescript/lib/es/diagnosticMessages.generated.json:1550:  "The_0_property_of_an_async_iterator_must_be_a_method_2768": "La propiedad \"{0}\" de un iterador de asincronía debe ser un método.",
./node_modules/typescript/lib/es/diagnosticMessages.generated.json:1551:  "The_0_property_of_an_iterator_must_be_a_method_2767": "La propiedad \"{0}\" de un iterador debe ser un método.",
./node_modules/typescript/lib/es/diagnosticMessages.generated.json:1555:  "The_arguments_object_cannot_be_referenced_in_an_async_function_or_method_in_ES5_Consider_using_a_sta_2522": "No se puede hacer referencia al objeto “arguments” en una función o método asincrónico en ES5. Considere la posibilidad de usar un método o función estándar.",
./node_modules/typescript/lib/es/diagnosticMessages.generated.json:1573:  "The_first_parameter_of_the_then_method_of_a_promise_must_be_a_callback_1060": "El primer parámetro del método \"then\" de una promesa debe ser una devolución de llamada.",
./node_modules/typescript/lib/es/diagnosticMessages.generated.json:1582:  "The_initializer_of_a_using_declaration_must_be_either_an_object_with_a_Symbol_dispose_method_or_be_n_2850": "El inicializador de una declaración “using” debe ser un objeto con un método “[Symbol.dispose]()”, o ser “null” o “undefined”.",
./node_modules/typescript/lib/es/diagnosticMessages.generated.json:1583:  "The_initializer_of_an_await_using_declaration_must_be_either_an_object_with_a_Symbol_asyncDispose_or_2851": "El inicializador de una declaración “await using” debe ser un objeto con un método “[Symbol.asyncDispose]()” o “[Symbol.dispose]5D;()”, o ser “null” o “undefined”.",
./node_modules/typescript/lib/es/diagnosticMessages.generated.json:1604:  "The_left_hand_side_of_an_instanceof_expression_must_be_assignable_to_the_first_argument_of_the_right_2860": "El lado izquierdo de una expresión “instanceof” debe poder asignarse al primer argumento del método “[Symbol.hasInstance]” del lado derecho.",
./node_modules/typescript/lib/es/diagnosticMessages.generated.json:1621:  "The_return_type_of_an_async_function_or_method_must_be_the_global_Promise_T_type_1065": "El tipo de valor devuelto de una función o un método asincrónicos debe ser el tipo Promise<T> global.",
./node_modules/typescript/lib/es/diagnosticMessages.generated.json:1622:  "The_return_type_of_an_async_function_or_method_must_be_the_global_Promise_T_type_Did_you_mean_to_wri_1064": "El tipo de valor devuelto de una función o un método asincrónicos debe ser el tipo Promise<T> global. ¿Pretendía escribir \"Promise<{0}>\"?",
./node_modules/typescript/lib/es/diagnosticMessages.generated.json:1625:  "The_right_hand_side_of_an_instanceof_expression_must_be_either_of_type_any_a_class_function_or_other_2359": "El lado derecho de una expresión “instanceof” debe ser de tipo “any”, una clase, función u otro tipo asignable al tipo de interfaz “Function”, o un tipo de objeto con un método “Symbol.hasInstance”.",
./node_modules/typescript/lib/es/diagnosticMessages.generated.json:1636:  "The_this_context_of_type_0_is_not_assignable_to_method_s_this_of_type_1_2684": "El contexto 'this' de tipo '{0}' no se puede asignar al contexto 'this' de tipo '{1}' del método.",
./node_modules/typescript/lib/es/diagnosticMessages.generated.json:1643:  "The_type_returned_by_the_0_method_of_an_async_iterator_must_be_a_promise_for_a_type_with_a_value_pro_2547": "El tipo devuelto por el método \"{0}()\" de un iterador de asincronía debe ser una promesa para un tipo con una propiedad \"value\".",
./node_modules/typescript/lib/es/diagnosticMessages.generated.json:1644:  "The_type_returned_by_the_0_method_of_an_iterator_must_have_a_value_property_2490": "El tipo devuelto por el método \"{0}()\" de un iterador debe tener una propiedad \"value\".",
./node_modules/typescript/lib/es/diagnosticMessages.generated.json:1691:  "This_member_must_have_an_override_modifier_because_it_overrides_an_abstract_method_that_is_declared__4116": "Este miembro debe tener un modificador \"override\" porque reemplaza a un método abstracto que se declara en la clase base \"{0}\".",
./node_modules/typescript/lib/es/diagnosticMessages.generated.json:1744:  "Type_0_is_not_an_array_type_or_a_string_type_or_does_not_have_a_Symbol_iterator_method_that_returns__2549": "El tipo \"{0}\" no es un tipo de matriz o un tipo de cadena o no tiene un método \"[Symbol.iterator]()\" que devuelve un iterador.",
./node_modules/typescript/lib/es/diagnosticMessages.generated.json:1745:  "Type_0_is_not_an_array_type_or_does_not_have_a_Symbol_iterator_method_that_returns_an_iterator_2548": "El tipo \"{0}\" no es un tipo de matriz o no tiene un método \"[Symbol.iterator]()\" que devuelve un iterador.",
./node_modules/typescript/lib/es/diagnosticMessages.generated.json:1756:  "Type_0_must_have_a_Symbol_asyncIterator_method_that_returns_an_async_iterator_2504": "El tipo \"{0}\" debe tener un método \"[Symbol.asyncIterator]()\" que devuelve un iterador de asincronía.",
./node_modules/typescript/lib/es/diagnosticMessages.generated.json:1757:  "Type_0_must_have_a_Symbol_iterator_method_that_returns_an_iterator_2488": "El tipo \"{0}\" debe tener un método \"[Symbol.iterator]()\" que devuelve un iterador.",
./node_modules/typescript/lib/es/diagnosticMessages.generated.json:1781:  "Type_is_referenced_directly_or_indirectly_in_the_fulfillment_callback_of_its_own_then_method_1062": "Se hace referencia al tipo directa o indirectamente en la devolución de llamada de entrega de su propio método \"then\".",
./node_modules/typescript/lib/es/diagnosticMessages.generated.json:1801:  "Type_parameter_0_of_method_from_exported_interface_has_or_is_using_private_name_1_4014": "El parámetro de tipo '{0}' del método de la interfaz exportada tiene o usa el nombre privado '{1}'.",
./node_modules/typescript/lib/es/diagnosticMessages.generated.json:1802:  "Type_parameter_0_of_public_method_from_exported_class_has_or_is_using_private_name_1_4012": "El parámetro de tipo '{0}' del método público de la clase exportada tiene o usa el nombre privado '{1}'.",
./node_modules/typescript/lib/es/diagnosticMessages.generated.json:1803:  "Type_parameter_0_of_public_static_method_from_exported_class_has_or_is_using_private_name_1_4010": "El parámetro de tipo '{0}' del método estático público de la clase exportada tiene o usa el nombre privado '{1}'.",
./node_modules/typescript/lib/es/diagnosticMessages.generated.json:1823:  "Unable_to_resolve_signature_of_method_decorator_when_called_as_an_expression_1241": "No se puede resolver la signatura de elemento Decorator de un método cuando se llama como expresión.",
./node_modules/typescript/lib/es/diagnosticMessages.generated.json:1831:  "Unexpected_token_A_constructor_method_accessor_or_property_was_expected_1068": "Token inesperado. Se esperaba un constructor, un método, un descriptor de acceso o una propiedad.",
./node_modules/typescript/lib/es/diagnosticMessages.generated.json:1902:  "We_can_only_write_a_type_for_0_by_adding_a_type_for_the_entire_parameter_here_2843": "Solo se puede escribir un tipo para '{0}' agregando aquí un tipo para todo el parámetro.",
./node_modules/typescript/lib/es/diagnosticMessages.generated.json:1906:  "Wrap_all_invalid_characters_in_an_expression_container_95109": "Encapsular todos los caracteres no válidos en un contenedor de expresiones",
./node_modules/typescript/lib/es/diagnosticMessages.generated.json:1908:  "Wrap_all_object_literal_with_parentheses_95116": "Encapsular todos los literales de objeto entre paréntesis",
./node_modules/typescript/lib/es/diagnosticMessages.generated.json:1909:  "Wrap_all_unparented_JSX_in_JSX_fragment_95121": "Encapsular todos los JSX no primarios en el fragmento de JSX",
./node_modules/typescript/lib/es/diagnosticMessages.generated.json:1975:  "_0_modifier_can_only_appear_on_a_type_parameter_of_a_function_method_or_class_1277": "El modificador “{0}” solo puede aparecer en un parámetro de tipo de una función, método o clase",
./node_modules/typescript/lib/es/diagnosticMessages.generated.json:2011:  "abstract_modifier_can_only_appear_on_a_class_method_or_property_declaration_1242": "El modificador 'abstract' solo puede aparecer en una declaración de propiedad, clase o método.",
./node_modules/typescript/lib/pt-br/diagnosticMessages.generated.json:24:  "A_computed_property_name_in_a_method_overload_must_refer_to_an_expression_whose_type_is_a_literal_ty_1168": "Um nome de propriedade computado em uma sobrecarga do método deve se referir a uma expressão cujo tipo é um tipo literal ou um 'unique symbol'.",
./node_modules/typescript/lib/pt-br/diagnosticMessages.generated.json:38:  "A_decorator_can_only_decorate_a_method_implementation_not_an_overload_1249": "Um decorador pode decorar somente uma implementação de método, não uma sobrecarga.",
./node_modules/typescript/lib/pt-br/diagnosticMessages.generated.json:57:  "A_mapped_type_may_not_declare_properties_or_methods_7061": "Um tipo mapeado não pode declarar propriedades ou métodos.",
./node_modules/typescript/lib/pt-br/diagnosticMessages.generated.json:73:  "A_promise_must_have_a_then_method_1059": "Uma promessa deve ter um método 'then'.",
./node_modules/typescript/lib/pt-br/diagnosticMessages.generated.json:111:  "A_type_predicate_is_only_allowed_in_return_type_position_for_functions_and_methods_1228": "O predicado de tipo só é permitido na posição de tipo de retorno para funções e métodos.",
./node_modules/typescript/lib/pt-br/diagnosticMessages.generated.json:116:  "Abstract_method_0_in_class_1_cannot_be_accessed_via_super_expression_2513": "O método abstrato '{0}' na classe '{1}' não pode ser acessado por meio da expressão super.",
./node_modules/typescript/lib/pt-br/diagnosticMessages.generated.json:117:  "Abstract_methods_can_only_appear_within_an_abstract_class_1244": "Os métodos abstratos só podem aparecer dentro de uma classe abstrata.",
./node_modules/typescript/lib/pt-br/diagnosticMessages.generated.json:128:  "Add_a_return_type_to_the_method_9034": "Adicione um tipo de retorno ao método",
./node_modules/typescript/lib/pt-br/diagnosticMessages.generated.json:133:  "Add_all_missing_async_modifiers_95041": "Adicionar todos os modificadores 'async' ausentes",
./node_modules/typescript/lib/pt-br/diagnosticMessages.generated.json:134:  "Add_all_missing_attributes_95168": "Adicionar todos os atributos ausentes",
./node_modules/typescript/lib/pt-br/diagnosticMessages.generated.json:135:  "Add_all_missing_call_parentheses_95068": "Adicionar todos os parênteses de chamada ausentes",
./node_modules/typescript/lib/pt-br/diagnosticMessages.generated.json:138:  "Add_all_missing_members_95022": "Adicionar todos os membros ausentes",
./node_modules/typescript/lib/pt-br/diagnosticMessages.generated.json:139:  "Add_all_missing_override_modifiers_95162": "Adicionar todos os modificadores 'override' ausentes",
./node_modules/typescript/lib/pt-br/diagnosticMessages.generated.json:140:  "Add_all_missing_parameters_95190": "Adicionar todos os parâmetros ausentes",
./node_modules/typescript/lib/pt-br/diagnosticMessages.generated.json:145:  "Add_all_optional_parameters_95193": "Adicione todos os parâmetros opcionais",
./node_modules/typescript/lib/pt-br/diagnosticMessages.generated.json:158:  "Add_extends_constraint_to_all_type_parameters_2212": "Adicionar a restrição `extends` a todos os parâmetros de tipo",
./node_modules/typescript/lib/pt-br/diagnosticMessages.generated.json:175:  "Add_names_to_all_parameters_without_names_95073": "Adicionar nomes a todos os parâmetros sem nomes",
./node_modules/typescript/lib/pt-br/diagnosticMessages.generated.json:187:  "Add_to_all_uncalled_decorators_95044": "Adicionar '()' a todos os decoradores não chamados",
./node_modules/typescript/lib/pt-br/diagnosticMessages.generated.json:196:  "Add_void_to_all_Promises_resolved_without_a_value_95144": "Adicionar 'void' a todos os Promises resolvidos sem um valor",
./node_modules/typescript/lib/pt-br/diagnosticMessages.generated.json:201:  "All_declarations_of_an_abstract_method_must_be_consecutive_2516": "Todas as declarações de um método abstrato devem ser consecutivas.",
./node_modules/typescript/lib/pt-br/diagnosticMessages.generated.json:227:  "An_async_function_or_method_in_ES5_requires_the_Promise_constructor_Make_sure_you_have_a_declaration_2705": "Uma função ou método assíncrono no ES5 requer o construtor 'Promise'.  Verifique se você tem uma declaração para o construtor 'Promise' ou inclua 'ES2015' na sua opção '--lib'.",
./node_modules/typescript/lib/pt-br/diagnosticMessages.generated.json:228:  "An_async_function_or_method_must_return_a_Promise_Make_sure_you_have_a_declaration_for_Promise_or_in_2697": "Uma função ou método assíncrono deve retornar um 'Promise'. Verifique se você tem uma declaração para 'Promise' ou inclua 'ES2015' na sua opção '--lib'.",
./node_modules/typescript/lib/pt-br/diagnosticMessages.generated.json:229:  "An_async_iterator_must_have_a_next_method_2519": "O iterador assíncrono deve ter um método 'next()'.",
./node_modules/typescript/lib/pt-br/diagnosticMessages.generated.json:273:  "An_iterator_must_have_a_next_method_2489": "Um iterador deve ter um método 'next()'.",
./node_modules/typescript/lib/pt-br/diagnosticMessages.generated.json:279:  "An_object_s_Symbol_hasInstance_method_must_return_a_boolean_value_for_it_to_be_used_on_the_right_han_2861": "O método '[Symbol.hasInstance]' de um objeto deve retornar um valor booliano para que ele seja usado no lado direito de uma expressão 'instanceof'.",
./node_modules/typescript/lib/pt-br/diagnosticMessages.generated.json:300:  "Assertions_require_every_name_in_the_call_target_to_be_declared_with_an_explicit_type_annotation_2775": "As declarações exigem que todos os nomes no destino de chamada sejam declarados com uma anotação de tipo explícito.",
./node_modules/typescript/lib/pt-br/diagnosticMessages.generated.json:320:  "Build_all_projects_including_those_that_appear_to_be_up_to_date_6636": "Compilar todos os projetos, incluindo aqueles que parecem estar atualizados.",
./node_modules/typescript/lib/pt-br/diagnosticMessages.generated.json:350:  "Cannot_assign_to_private_method_0_Private_methods_are_not_writable_2803": "Não é possível fazer a atribuição ao método privado '{0}'. Os métodos privados não são graváveis.",
./node_modules/typescript/lib/pt-br/diagnosticMessages.generated.json:355:  "Cannot_delegate_iteration_to_value_because_the_next_method_of_its_iterator_expects_type_1_but_the_co_2766": "Não é possível delegar iteração para valor porque o método 'next' de seu iterador espera o tipo '{1}', mas o gerador que a contém sempre enviará '{0}'.",
./node_modules/typescript/lib/pt-br/diagnosticMessages.generated.json:393:  "Cannot_iterate_value_because_the_next_method_of_its_iterator_expects_type_1_but_array_destructuring__2765": "Não é possível iterar o valor porque o método 'next' de seu iterador espera o tipo '{1}', mas a desestruturação da matriz sempre enviará '{0}'.",
./node_modules/typescript/lib/pt-br/diagnosticMessages.generated.json:394:  "Cannot_iterate_value_because_the_next_method_of_its_iterator_expects_type_1_but_array_spread_will_al_2764": "Não é possível iterar o valor porque o método 'next' de seu iterador espera o tipo '{1}', mas o array spread sempre enviará '{0}'.",
./node_modules/typescript/lib/pt-br/diagnosticMessages.generated.json:395:  "Cannot_iterate_value_because_the_next_method_of_its_iterator_expects_type_1_but_for_of_will_always_s_2763": "Não é possível iterar o valor porque o método 'next' de seu iterador espera o tipo '{1}', mas a instrução for-of sempre enviará '{0}'.",
./node_modules/typescript/lib/pt-br/diagnosticMessages.generated.json:417:  "Change_all_jsdoc_style_types_to_TypeScript_95030": "Alterar todos os tipos de estilo jsdoc para TypeScript",
./node_modules/typescript/lib/pt-br/diagnosticMessages.generated.json:418:  "Change_all_jsdoc_style_types_to_TypeScript_and_add_undefined_to_nullable_types_95031": "Alterar todos os tipos de estilo jsdoc para TypeScript (e adicionar '| undefined' a tipos que permitem valor nulo)",
./node_modules/typescript/lib/pt-br/diagnosticMessages.generated.json:423:  "Check_that_the_arguments_for_bind_call_and_apply_methods_match_the_original_function_6697": "Verificar se os argumentos para os métodos 'associar', 'chamar' e 'aplicar' correspondem à função original.",
./node_modules/typescript/lib/pt-br/diagnosticMessages.generated.json:483:  "Control_what_method_is_used_to_detect_module_format_JS_files_1475": "Controlar qual método é usado para detectar arquivos JS no formato de módulo.",
./node_modules/typescript/lib/pt-br/diagnosticMessages.generated.json:487:  "Convert_all_const_to_let_95102": "Converta todos os 'const' para 'let'",
./node_modules/typescript/lib/pt-br/diagnosticMessages.generated.json:489:  "Convert_all_invalid_characters_to_HTML_entity_code_95101": "Converter todos os caracteres inválidos em código de entidade HTML",
./node_modules/typescript/lib/pt-br/diagnosticMessages.generated.json:490:  "Convert_all_re_exported_types_to_type_only_exports_1365": "Converter todos os tipos re-exportados para exportações somente de tipo",
./node_modules/typescript/lib/pt-br/diagnosticMessages.generated.json:491:  "Convert_all_require_to_import_95048": "Converter todos os 'require' em 'import'",
./node_modules/typescript/lib/pt-br/diagnosticMessages.generated.json:492:  "Convert_all_to_async_functions_95066": "Converter todos para funções assíncronas",
./node_modules/typescript/lib/pt-br/diagnosticMessages.generated.json:493:  "Convert_all_to_bigint_numeric_literals_95092": "Converter todos para literais numéricos bigint",
./node_modules/typescript/lib/pt-br/diagnosticMessages.generated.json:495:  "Convert_all_type_literals_to_mapped_type_95021": "Converter todos os literais de tipo em tipo mapeado",
./node_modules/typescript/lib/pt-br/diagnosticMessages.generated.json:496:  "Convert_all_typedef_to_TypeScript_types_95177": "Converta todos os typedef em tipos TypeScript.",
./node_modules/typescript/lib/pt-br/diagnosticMessages.generated.json:557:  "Declare_method_0_90023": "Declarar método '{0}'",
./node_modules/typescript/lib/pt-br/diagnosticMessages.generated.json:558:  "Declare_private_method_0_90038": "Declarar método privado '{0}'",
./node_modules/typescript/lib/pt-br/diagnosticMessages.generated.json:561:  "Declare_static_method_0_90024": "Declarar método estático '{0}'",
./node_modules/typescript/lib/pt-br/diagnosticMessages.generated.json:581:  "Delete_the_outputs_of_all_projects_6365": "Excluir as saídas de todos os projetos.",
./node_modules/typescript/lib/pt-br/diagnosticMessages.generated.json:690:  "Enable_strict_bind_call_and_apply_methods_on_functions_6214": "Habilite os métodos estritos 'bind', 'call' e 'apply' em funções.",
./node_modules/typescript/lib/pt-br/diagnosticMessages.generated.json:745:  "Export_all_referenced_locals_90060": "Exportar todos os locais referenciados",
./node_modules/typescript/lib/pt-br/diagnosticMessages.generated.json:793:  "File_0_is_not_listed_within_the_file_list_of_project_1_Projects_must_list_all_files_or_use_an_includ_6307": "O arquivo '{0}' não está na lista de arquivos de projeto '{1}'. Os projetos devem listar todos os arquivos ou usar um padrão 'include'.",
./node_modules/typescript/lib/pt-br/diagnosticMessages.generated.json:794:  "File_0_is_not_under_rootDir_1_rootDir_is_expected_to_contain_all_source_files_6059": "O arquivo '{0}' não está em 'rootDir' '{1}'. Espera-se que 'rootDir' contenha todos os arquivos de origem.",
./node_modules/typescript/lib/pt-br/diagnosticMessages.generated.json:824:  "Fix_all_detected_spelling_errors_95026": "Corrigir todos os erros de ortografia detectados",
./node_modules/typescript/lib/pt-br/diagnosticMessages.generated.json:826:  "Fix_all_implicit_this_errors_95107": "Corrigir todos os erros de 'this' implícitos",
./node_modules/typescript/lib/pt-br/diagnosticMessages.generated.json:827:  "Fix_all_incorrect_return_type_of_an_async_functions_90037": "Corrigir todo tipo de retorno incorreto de uma função assíncrona",
./node_modules/typescript/lib/pt-br/diagnosticMessages.generated.json:935:  "Infer_all_types_from_usage_95023": "Inferir todos os tipos de uso",
./node_modules/typescript/lib/pt-br/diagnosticMessages.generated.json:950:  "Install_all_missing_types_packages_95033": "Instalar todos os pacotes de tipos ausentes",
./node_modules/typescript/lib/pt-br/diagnosticMessages.generated.json:1033:  "Method_0_cannot_have_an_implementation_because_it_is_marked_abstract_1245": "O método '{0}' não pode ter uma implementação, pois está marcado como abstrato.",
./node_modules/typescript/lib/pt-br/diagnosticMessages.generated.json:1034:  "Method_0_of_exported_interface_has_or_is_using_name_1_from_private_module_2_4101": "O método '{0}' da interface exportada tem ou está usando o nome '{1}' do módulo privado '{2}'.",
./node_modules/typescript/lib/pt-br/diagnosticMessages.generated.json:1035:  "Method_0_of_exported_interface_has_or_is_using_private_name_1_4102": "O método '{0}' da interface exportada tem ou está usando o nome privado '{1}'.",
./node_modules/typescript/lib/pt-br/diagnosticMessages.generated.json:1036:  "Method_must_have_an_explicit_return_type_annotation_with_isolatedDeclarations_9008": "O método deve ter uma anotação de tipo de retorno explícita com --isolatedDeclarations.",
./node_modules/typescript/lib/pt-br/diagnosticMessages.generated.json:1037:  "Method_not_implemented_95158": "Método não implementado.",
./node_modules/typescript/lib/pt-br/diagnosticMessages.generated.json:1102:  "Not_all_code_paths_return_a_value_7030": "Nem todos os caminhos de código retornam um valor.",
./node_modules/typescript/lib/pt-br/diagnosticMessages.generated.json:1103:  "Not_all_constituents_of_type_0_are_callable_2756": "Nem todos os membros do tipo '{0}' podem ser chamados.",
./node_modules/typescript/lib/pt-br/diagnosticMessages.generated.json:1104:  "Not_all_constituents_of_type_0_are_constructable_2760": "Nem todos os membros do tipo '{0}' são construídos.",
./node_modules/typescript/lib/pt-br/diagnosticMessages.generated.json:1130:  "Only_public_and_protected_methods_of_the_base_class_are_accessible_via_the_super_keyword_2340": "Somente métodos protegidos e públicos da classe base são acessíveis pela palavra-chave 'super'.",
./node_modules/typescript/lib/pt-br/diagnosticMessages.generated.json:1197:  "Parameter_0_of_method_from_exported_interface_has_or_is_using_name_1_from_private_module_2_4074": "O parâmetro '{0}' do método da interface exportada tem ou está usando o nome '{1}' do módulo particular '{2}'.",
./node_modules/typescript/lib/pt-br/diagnosticMessages.generated.json:1198:  "Parameter_0_of_method_from_exported_interface_has_or_is_using_private_name_1_4075": "O parâmetro '{0}' do método da interface exportada tem ou está usando o nome particular '{1}'.",
./node_modules/typescript/lib/pt-br/diagnosticMessages.generated.json:1199:  "Parameter_0_of_public_method_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_c_4071": "O parâmetro '{0}' do método público da classe exportada tem ou está usando o nome '{1}' do módulo externo {2}, mas não pode ser nomeado.",
./node_modules/typescript/lib/pt-br/diagnosticMessages.generated.json:1200:  "Parameter_0_of_public_method_from_exported_class_has_or_is_using_name_1_from_private_module_2_4072": "O parâmetro '{0}' do método público da classe exportada tem ou está usando o nome '{1}' do módulo particular '{2}'.",
./node_modules/typescript/lib/pt-br/diagnosticMessages.generated.json:1201:  "Parameter_0_of_public_method_from_exported_class_has_or_is_using_private_name_1_4073": "O parâmetro '{0}' do método público da classe exportada tem ou está usando o nome particular '{1}'.",
./node_modules/typescript/lib/pt-br/diagnosticMessages.generated.json:1202:  "Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_name_1_from_external_module__4068": "O parâmetro '{0}' do método estático público da classe exportada tem ou está usando o nome '{1}' do módulo externo {2}, mas não pode ser nomeado.",
./node_modules/typescript/lib/pt-br/diagnosticMessages.generated.json:1203:  "Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_name_1_from_private_module_2_4069": "O parâmetro '{0}' do método estático público da classe exportada tem ou está usando o nome '{1}' do módulo particular '{2}'.",
./node_modules/typescript/lib/pt-br/diagnosticMessages.generated.json:1204:  "Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_private_name_1_4070": "O parâmetro '{0}' do método estático público da classe exportada tem ou está usando o nome particular '{1}'.",
./node_modules/typescript/lib/pt-br/diagnosticMessages.generated.json:1224:  "Print_all_of_the_files_read_during_the_compilation_6653": "Imprimir todos os arquivos lidos durante a compilação.",
./node_modules/typescript/lib/pt-br/diagnosticMessages.generated.json:1307:  "Public_method_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named_4098": "O método público '{0}' da classe exportada tem ou está usando o nome '{1}' do módulo externo {2}, mas não pode ser nomeado.",
./node_modules/typescript/lib/pt-br/diagnosticMessages.generated.json:1308:  "Public_method_0_of_exported_class_has_or_is_using_name_1_from_private_module_2_4099": "O método público '{0}' da classe exportada tem ou está usando o nome '{1}' do módulo privado '{2}'.",
./node_modules/typescript/lib/pt-br/diagnosticMessages.generated.json:1309:  "Public_method_0_of_exported_class_has_or_is_using_private_name_1_4100": "O método público '{0}' da classe exportada tem ou está usando o nome privado '{1}'.",
./node_modules/typescript/lib/pt-br/diagnosticMessages.generated.json:1313:  "Public_static_method_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_4095": "O método estático público '{0}' da classe exportada tem ou está usando o nome '{1}' do módulo externo {2}, mas não pode ser nomeado.",
./node_modules/typescript/lib/pt-br/diagnosticMessages.generated.json:1314:  "Public_static_method_0_of_exported_class_has_or_is_using_name_1_from_private_module_2_4096": "O método estático público '{0}' da classe exportada tem ou está usando o nome '{1}' do módulo privado '{2}'.",
./node_modules/typescript/lib/pt-br/diagnosticMessages.generated.json:1315:  "Public_static_method_0_of_exported_class_has_or_is_using_private_name_1_4097": "O método estático público '{0}' da classe exportada tem ou está usando o nome privado '{1}'.",
./node_modules/typescript/lib/pt-br/diagnosticMessages.generated.json:1336:  "Remove_all_unnecessary_override_modifiers_95163": "Remover todos os modificadores 'override' desnecessários",
./node_modules/typescript/lib/pt-br/diagnosticMessages.generated.json:1337:  "Remove_all_unnecessary_uses_of_await_95087": "Remover todos os usos desnecessários de 'await'",
./node_modules/typescript/lib/pt-br/diagnosticMessages.generated.json:1338:  "Remove_all_unreachable_code_95051": "Remover todo o código inacessível",
./node_modules/typescript/lib/pt-br/diagnosticMessages.generated.json:1339:  "Remove_all_unused_labels_95054": "Remover todos os rótulos não utilizados",
./node_modules/typescript/lib/pt-br/diagnosticMessages.generated.json:1340:  "Remove_braces_from_all_arrow_function_bodies_with_relevant_issues_95115": "Remover as chaves de todos os corpos de função de seta com problemas relevantes",
./node_modules/typescript/lib/pt-br/diagnosticMessages.generated.json:1360:  "Replace_all_unused_infer_with_unknown_90031": "Substituir todos os 'infer' não usados por 'unknown'",
./node_modules/typescript/lib/pt-br/diagnosticMessages.generated.json:1363:  "Report_error_when_not_all_code_paths_in_function_return_a_value_6075": "Relate erro quando nem todos os caminhos de código na função retornarem um valor.",
./node_modules/typescript/lib/pt-br/diagnosticMessages.generated.json:1403:  "Return_type_of_method_from_exported_interface_has_or_is_using_name_0_from_private_module_1_4056": "O tipo de retorno do método da interface exportada tem ou está usando o nome '{0}' do módulo particular '{1}'.",
./node_modules/typescript/lib/pt-br/diagnosticMessages.generated.json:1404:  "Return_type_of_method_from_exported_interface_has_or_is_using_private_name_0_4057": "O tipo de retorno do método da interface exportada tem ou está usando o nome particular '{0}'.",
./node_modules/typescript/lib/pt-br/diagnosticMessages.generated.json:1408:  "Return_type_of_public_method_from_exported_class_has_or_is_using_name_0_from_external_module_1_but_c_4053": "O tipo de retorno do método público da classe exportada tem ou está usando o nome '{0}' do módulo externo {1}, mas não pode ser nomeado.",
./node_modules/typescript/lib/pt-br/diagnosticMessages.generated.json:1409:  "Return_type_of_public_method_from_exported_class_has_or_is_using_name_0_from_private_module_1_4054": "O tipo de retorno do método público da classe exportada tem ou está usando o nome '{0}' do módulo particular '{1}'.",
./node_modules/typescript/lib/pt-br/diagnosticMessages.generated.json:1410:  "Return_type_of_public_method_from_exported_class_has_or_is_using_private_name_0_4055": "O tipo de retorno do método público da classe exportada tem ou está usando o nome particular '{0}'.",
./node_modules/typescript/lib/pt-br/diagnosticMessages.generated.json:1414:  "Return_type_of_public_static_method_from_exported_class_has_or_is_using_name_0_from_external_module__4050": "O tipo de retorno do método estático público da classe exportada tem ou está usando o nome '{0}' do módulo externo {1}, mas não pode ser nomeado.",
./node_modules/typescript/lib/pt-br/diagnosticMessages.generated.json:1415:  "Return_type_of_public_static_method_from_exported_class_has_or_is_using_name_0_from_private_module_1_4051": "O tipo de retorno do método estático público da classe exportada tem ou está usando o nome '{0}' do módulo particular '{1}'.",
./node_modules/typescript/lib/pt-br/diagnosticMessages.generated.json:1416:  "Return_type_of_public_static_method_from_exported_class_has_or_is_using_private_name_0_4052": "O tipo de retorno do método estático público da classe exportada tem ou está usando o nome particular '{0}'.",
./node_modules/typescript/lib/pt-br/diagnosticMessages.generated.json:1439:  "Searching_all_ancestor_node_modules_directories_for_fallback_extensions_Colon_0_6418": "Pesquisando todos os diretórios node_modules ancestrais em busca de extensões de fallback: {0}.",
./node_modules/typescript/lib/pt-br/diagnosticMessages.generated.json:1440:  "Searching_all_ancestor_node_modules_directories_for_preferred_extensions_Colon_0_6417": "Pesquisando todos os diretórios node_modules ancestrais em busca de extensões preferenciais: {0}.",
./node_modules/typescript/lib/pt-br/diagnosticMessages.generated.json:1457:  "Skip_type_checking_all_d_ts_files_6693": "Ignorar verificação de tipo de todos os arquivos .d.ts.",
./node_modules/typescript/lib/pt-br/diagnosticMessages.generated.json:1477:  "Specify_an_output_folder_for_all_emitted_files_6678": "Especificar uma pasta de saída para todos os arquivos emitidos.",
./node_modules/typescript/lib/pt-br/diagnosticMessages.generated.json:1550:  "The_0_property_of_an_async_iterator_must_be_a_method_2768": "A propriedade '{0}' de um iterador assíncrono deve ser um método.",
./node_modules/typescript/lib/pt-br/diagnosticMessages.generated.json:1551:  "The_0_property_of_an_iterator_must_be_a_method_2767": "A propriedade '{0}' de um iterador deve ser um método.",
./node_modules/typescript/lib/pt-br/diagnosticMessages.generated.json:1555:  "The_arguments_object_cannot_be_referenced_in_an_async_function_or_method_in_ES5_Consider_using_a_sta_2522": "O objeto 'arguments' não pode ser referenciado em uma função assíncrona ou o método no ES5. Considere usar uma função ou um método padrão.",
./node_modules/typescript/lib/pt-br/diagnosticMessages.generated.json:1573:  "The_first_parameter_of_the_then_method_of_a_promise_must_be_a_callback_1060": "O primeiro parâmetro do método 'then' de uma promessa deve ser um retorno de chamada.",
./node_modules/typescript/lib/pt-br/diagnosticMessages.generated.json:1582:  "The_initializer_of_a_using_declaration_must_be_either_an_object_with_a_Symbol_dispose_method_or_be_n_2850": "O inicializador de uma declaração 'using' deve ser um objeto com um método '[Symbol.dispose]()' ou ser 'null' ou 'undefined'.",

[Showing lines 39-250 of 250 (50.0KB limit). Full output: /tmp/pi-bash-8734f99d85c634c3.log]


/home/sebas/.pi/agent/bin/fd
/home/sebas/.pi/agent/skills/browser-tools
/home/sebas/.pi/agent/skills/brave-search
/home/sebas/.pi/agent/telegram-live-resume-ack.json
/home/sebas/.pi/agent/auth.json
/home/sebas/.pi/agent/themes/purple-user-bubble.json
/home/sebas/.pi/agent/telegram-live-sessions.json
/home/sebas/.pi/agent/telegram-live-resume-request.json
/home/sebas/.pi/agent/settings.json
/home/sebas/.pi/agent/extensions/questionnaire.ts
/home/sebas/.pi/pi-acp/session-map.json
/home/sebas/.agents/skills/telegram-notify/telegram-notify
/home/sebas/.agents/skills/telegram-notify/SKILL.md
/home/sebas/.agents/skills/telegram-notify/.env
/home/sebas/.agents/skills/telegram-notify/.env.example
/home/sebas/.agents/skills/karaoke-stem-separation/SKILL.md
/home/sebas/.agents/skills/pi-extension-search/SKILL.md
/home/sebas/.agents/skills/memory-read/SKILL.md
/home/sebas/.agents/skills/ballbox-company/SKILL.md
/home/sebas/.agents/skills/memory-write/SKILL.md
/home/sebas/.agents/skills/memory-write/memory-write
/home/sebas/.agents/skills/tmux-pi-job-setup/SKILL.md
/home/sebas/.agents/skills/tmux-pi-job-run/SKILL.md
/home/sebas/.agents/.skill-lock.json
/home/sebas/.agents/skills.bck/personal-memory-search/SKILL.md
/home/sebas/.agents/skills.bck/telegram-notify/telegram-notify
/home/sebas/.agents/skills.bck/telegram-notify/SKILL.md
/home/sebas/.agents/skills.bck/telegram-notify/.env
/home/sebas/.agents/skills.bck/telegram-notify/.env.example
/home/sebas/.agents/skills.bck/personal-research/SKILL.md
/home/sebas/.agents/skills.bck/personal-status/SKILL.md
/home/sebas/.agents/skills.bck/personal-task-intake/SKILL.md
/home/sebas/.agents/extensions/resume-hint/resume-hint.js
/home/sebas/pi-config/bin/pi-loop
/home/sebas/pi-config/bin/pi-job-start
/home/sebas/pi-config/bin/tool-usage-log
/home/sebas/pi-config/bin/laptop-umount
/home/sebas/pi-config/bin/pi-telegram-service
/home/sebas/pi-config/bin/task-init
/home/sebas/pi-config/bin/task-phase-loop
/home/sebas/pi-config/bin/codex-usage-alert
/home/sebas/pi-config/bin/pi-job-runner
/home/sebas/pi-config/bin/task-phase-run
/home/sebas/pi-config/bin/laptop-mount
/home/sebas/pi-config/bin/wifi-presence-log
/home/sebas/pi-config/bin/wifi-tracker-api.py
/home/sebas/pi-config/bin/browser-harness
/home/sebas/pi-config/bin/fd
/home/sebas/pi-config/bin/tmp-cleanup
/home/sebas/pi-config/bin/laptop-read
/home/sebas/pi-config/bin/pi-job-list
/home/sebas/pi-config/bin/laptop-run
/home/sebas/pi-config/bin/freshrss-recent-archive
/home/sebas/pi-config/bin/pi-telegram-resume-session
/home/sebas/pi-config/bin/laptop-rsync
/home/sebas/pi-config/bin/task-phase-init
/home/sebas/pi-config/bin/pi-config-audit
/home/sebas/pi-config/bin/freshrss-prewarm
/home/sebas/pi-config/bin/pi-job-stop
/home/sebas/pi-config/bin/laptop-write
/home/sebas/pi-config/bin/pi-job-wait
/home/sebas/pi-config/bin/pi-job-check
/home/sebas/pi-config/bin/__pycache__/tool-usage-reportcpython-313.pyc
/home/sebas/pi-config/bin/__pycache__/wifi-tracker-api.cpython-313.pyc
/home/sebas/pi-config/bin/__pycache__/wifi-presence-logcpython-313.pyc
/home/sebas/pi-config/bin/__pycache__/pi-config-auditcpython-313.pyc
/home/sebas/pi-config/bin/pi-telegram-new-session
/home/sebas/pi-config/bin/tool-usage-report
/home/sebas/pi-config/bin/ralph-loop-run
/home/sebas/pi-config/telegram.json
/home/sebas/pi-config/node_modules/source-map/LICENSE
/home/sebas/pi-config/node_modules/source-map/CHANGELOG.md
/home/sebas/pi-config/node_modules/source-map/source-map.d.ts
/home/sebas/pi-config/node_modules/source-map/README.md
/home/sebas/pi-config/node_modules/source-map/source-map.js
/home/sebas/pi-config/node_modules/source-map/package.json
/home/sebas/pi-config/node_modules/partial-json/LICENSE
/home/sebas/pi-config/node_modules/partial-json/README.md
/home/sebas/pi-config/node_modules/partial-json/package.json
/home/sebas/pi-config/node_modules/jws/opslevel.yml
/home/sebas/pi-config/node_modules/jws/LICENSE
/home/sebas/pi-config/node_modules/jws/CHANGELOG.md
/home/sebas/pi-config/node_modules/jws/readme.md
/home/sebas/pi-config/node_modules/jws/index.js
/home/sebas/pi-config/node_modules/jws/package.json
/home/sebas/pi-config/node_modules/y18n/LICENSE
/home/sebas/pi-config/node_modules/y18n/CHANGELOG.md
/home/sebas/pi-config/node_modules/y18n/index.mjs
/home/sebas/pi-config/node_modules/y18n/README.md
/home/sebas/pi-config/node_modules/y18n/package.json
/home/sebas/pi-config/node_modules/color-name/LICENSE
/home/sebas/pi-config/node_modules/color-name/index.js
/home/sebas/pi-config/node_modules/color-name/README.md
/home/sebas/pi-config/node_modules/color-name/package.json
/home/sebas/pi-config/node_modules/ansi-regex/license
/home/sebas/pi-config/node_modules/ansi-regex/index.d.ts
/home/sebas/pi-config/node_modules/ansi-regex/readme.md
/home/sebas/pi-config/node_modules/ansi-regex/index.js
/home/sebas/pi-config/node_modules/ansi-regex/package.json
/home/sebas/pi-config/node_modules/cli-highlight/LICENSE.txt
/home/sebas/pi-config/node_modules/cli-highlight/README.md
/home/sebas/pi-config/node_modules/cli-highlight/package.json
/home/sebas/pi-config/node_modules/data-uri-to-buffer/LICENSE
/home/sebas/pi-config/node_modules/data-uri-to-buffer/README.md
/home/sebas/pi-config/node_modules/data-uri-to-buffer/package.json
/home/sebas/pi-config/node_modules/extract-zip/cli.js
/home/sebas/pi-config/node_modules/extract-zip/LICENSE
/home/sebas/pi-config/node_modules/extract-zip/index.d.ts
/home/sebas/pi-config/node_modules/extract-zip/readme.md
/home/sebas/pi-config/node_modules/extract-zip/index.js
/home/sebas/pi-config/node_modules/extract-zip/package.json
/home/sebas/pi-config/node_modules/minipass/LICENSE.md
/home/sebas/pi-config/node_modules/minipass/README.md
/home/sebas/pi-config/node_modules/minipass/package.json
/home/sebas/pi-config/node_modules/typescript/LICENSE.txt
/home/sebas/pi-config/node_modules/typescript/SECURITY.md
/home/sebas/pi-config/node_modules/typescript/ThirdPartyNoticeText.txt
/home/sebas/pi-config/node_modules/typescript/README.md
/home/sebas/pi-config/node_modules/typescript/package.json
/home/sebas/pi-config/node_modules/has-flag/license
/home/sebas/pi-config/node_modules/has-flag/index.d.ts
/home/sebas/pi-config/node_modules/has-flag/readme.md
/home/sebas/pi-config/node_modules/has-flag/index.js
/home/sebas/pi-config/node_modules/has-flag/package.json
/home/sebas/pi-config/node_modules/safe-buffer/LICENSE
/home/sebas/pi-config/node_modules/safe-buffer/index.d.ts
/home/sebas/pi-config/node_modules/safe-buffer/index.js
/home/sebas/pi-config/node_modules/safe-buffer/README.md
/home/sebas/pi-config/node_modules/safe-buffer/package.json
/home/sebas/pi-config/node_modules/supports-color/browser.js
/home/sebas/pi-config/node_modules/supports-color/license
/home/sebas/pi-config/node_modules/supports-color/readme.md
/home/sebas/pi-config/node_modules/supports-color/index.js
/home/sebas/pi-config/node_modules/supports-color/package.json
/home/sebas/pi-config/node_modules/fast-xml-parser/LICENSE
/home/sebas/pi-config/node_modules/fast-xml-parser/CHANGELOG.md
/home/sebas/pi-config/node_modules/fast-xml-parser/README.md
/home/sebas/pi-config/node_modules/fast-xml-parser/package.json
/home/sebas/pi-config/node_modules/ws/browser.js
/home/sebas/pi-config/node_modules/ws/LICENSE
/home/sebas/pi-config/node_modules/ws/index.js
/home/sebas/pi-config/node_modules/ws/wrapper.mjs
/home/sebas/pi-config/node_modules/ws/README.md
/home/sebas/pi-config/node_modules/ws/package.json
/home/sebas/pi-config/node_modules/gaxios/LICENSE
/home/sebas/pi-config/node_modules/gaxios/README.md
/home/sebas/pi-config/node_modules/gaxios/package.json
/home/sebas/pi-config/node_modules/xml-naming/README.md
/home/sebas/pi-config/node_modules/xml-naming/package.json
/home/sebas/pi-config/node_modules/parse5-htmlparser2-tree-adapter/LICENSE
/home/sebas/pi-config/node_modules/parse5-htmlparser2-tree-adapter/README.md
/home/sebas/pi-config/node_modules/parse5-htmlparser2-tree-adapter/package.json
/home/sebas/pi-config/node_modules/gcp-metadata/LICENSE
/home/sebas/pi-config/node_modules/gcp-metadata/README.md
/home/sebas/pi-config/node_modules/gcp-metadata/package.json
/home/sebas/pi-config/node_modules/koffi/LICENSE.txt
/home/sebas/pi-config/node_modules/koffi/index.d.ts
/home/sebas/pi-config/node_modules/koffi/CHANGELOG.md
/home/sebas/pi-config/node_modules/koffi/indirect.js
/home/sebas/pi-config/node_modules/koffi/index.js
/home/sebas/pi-config/node_modules/koffi/README.md
/home/sebas/pi-config/node_modules/koffi/package.json
/home/sebas/pi-config/node_modules/marked/LICENSE.md
/home/sebas/pi-config/node_modules/marked/marked.min.js
/home/sebas/pi-config/node_modules/marked/README.md
/home/sebas/pi-config/node_modules/marked/package.json
/home/sebas/pi-config/node_modules/ip-address/LICENSE
/home/sebas/pi-config/node_modules/ip-address/README.md
/home/sebas/pi-config/node_modules/ip-address/package.json
/home/sebas/pi-config/node_modules/ansi-styles/license
/home/sebas/pi-config/node_modules/ansi-styles/index.d.ts
/home/sebas/pi-config/node_modules/ansi-styles/readme.md
/home/sebas/pi-config/node_modules/ansi-styles/index.js
/home/sebas/pi-config/node_modules/ansi-styles/package.json
/home/sebas/pi-config/node_modules/mime-db/db.json
/home/sebas/pi-config/node_modules/mime-db/HISTORY.md
/home/sebas/pi-config/node_modules/mime-db/LICENSE
/home/sebas/pi-config/node_modules/mime-db/index.js
/home/sebas/pi-config/node_modules/mime-db/README.md
/home/sebas/pi-config/node_modules/mime-db/package.json
/home/sebas/pi-config/node_modules/fast-xml-builder/LICENSE
/home/sebas/pi-config/node_modules/fast-xml-builder/CHANGELOG.md
/home/sebas/pi-config/node_modules/fast-xml-builder/README.md
/home/sebas/pi-config/node_modules/fast-xml-builder/package.json
/home/sebas/pi-config/node_modules/ieee754/LICENSE
/home/sebas/pi-config/node_modules/ieee754/index.d.ts
/home/sebas/pi-config/node_modules/ieee754/index.js
/home/sebas/pi-config/node_modules/ieee754/README.md
/home/sebas/pi-config/node_modules/ieee754/package.json
/home/sebas/pi-config/node_modules/ts-algebra/LICENSE
/home/sebas/pi-config/node_modules/ts-algebra/.eslintrc.js
/home/sebas/pi-config/node_modules/ts-algebra/.prettierrc
/home/sebas/pi-config/node_modules/ts-algebra/.prettierignore
/home/sebas/pi-config/node_modules/ts-algebra/.nvmrc
/home/sebas/pi-config/node_modules/ts-algebra/README.md
/home/sebas/pi-config/node_modules/ts-algebra/.eslintignore
/home/sebas/pi-config/node_modules/ts-algebra/package.json
/home/sebas/pi-config/node_modules/json-schema-to-ts/LICENSE
/home/sebas/pi-config/node_modules/json-schema-to-ts/README.md
/home/sebas/pi-config/node_modules/json-schema-to-ts/package.json
/home/sebas/pi-config/node_modules/protobufjs/minimal.d.ts
/home/sebas/pi-config/node_modules/protobufjs/LICENSE
/home/sebas/pi-config/node_modules/protobufjs/minimal.js
/home/sebas/pi-config/node_modules/protobufjs/tsconfig.json
/home/sebas/pi-config/node_modules/protobufjs/light.js
/home/sebas/pi-config/node_modules/protobufjs/index.d.ts
/home/sebas/pi-config/node_modules/protobufjs/light.d.ts
/home/sebas/pi-config/node_modules/protobufjs/index.js
/home/sebas/pi-config/node_modules/protobufjs/README.md
/home/sebas/pi-config/node_modules/protobufjs/package.json
/home/sebas/pi-config/node_modules/netmask/LICENSE.md
/home/sebas/pi-config/node_modules/netmask/CHANGELOG.md
/home/sebas/pi-config/node_modules/netmask/README.md
/home/sebas/pi-config/node_modules/netmask/package.json
/home/sebas/pi-config/node_modules/google-auth-library/LICENSE
/home/sebas/pi-config/node_modules/google-auth-library/README.md
/home/sebas/pi-config/node_modules/google-auth-library/package.json
/home/sebas/pi-config/node_modules/color-convert/conversions.js
/home/sebas/pi-config/node_modules/color-convert/LICENSE
/home/sebas/pi-config/node_modules/color-convert/CHANGELOG.md
/home/sebas/pi-config/node_modules/color-convert/index.js
/home/sebas/pi-config/node_modules/color-convert/route.js
/home/sebas/pi-config/node_modules/color-convert/README.md
/home/sebas/pi-config/node_modules/color-convert/package.json
/home/sebas/pi-config/node_modules/fd-slicer/.npmignore
/home/sebas/pi-config/node_modules/fd-slicer/LICENSE
/home/sebas/pi-config/node_modules/fd-slicer/CHANGELOG.md
/home/sebas/pi-config/node_modules/fd-slicer/index.js
/home/sebas/pi-config/node_modules/fd-slicer/.travis.yml
/home/sebas/pi-config/node_modules/fd-slicer/README.md
/home/sebas/pi-config/node_modules/fd-slicer/package.json
/home/sebas/pi-config/node_modules/jwa/opslevel.yml
/home/sebas/pi-config/node_modules/jwa/LICENSE
/home/sebas/pi-config/node_modules/jwa/index.js
/home/sebas/pi-config/node_modules/jwa/README.md
/home/sebas/pi-config/node_modules/jwa/package.json
/home/sebas/pi-config/node_modules/balanced-match/LICENSE.md
/home/sebas/pi-config/node_modules/balanced-match/README.md
/home/sebas/pi-config/node_modules/balanced-match/package.json
/home/sebas/pi-config/node_modules/yauzl/LICENSE
/home/sebas/pi-config/node_modules/yauzl/index.js
/home/sebas/pi-config/node_modules/yauzl/README.md
/home/sebas/pi-config/node_modules/yauzl/package.json
/home/sebas/pi-config/node_modules/thenify/History.md
/home/sebas/pi-config/node_modules/thenify/LICENSE
/home/sebas/pi-config/node_modules/thenify/index.js
/home/sebas/pi-config/node_modules/thenify/README.md
/home/sebas/pi-config/node_modules/thenify/package.json
/home/sebas/pi-config/node_modules/graceful-fs/graceful-fs.js
/home/sebas/pi-config/node_modules/graceful-fs/clone.js


/home/sebas/.agents:
total 24
drwxr-xr-x   5 sebas sebas 4096 Apr 21 23:44 .
drwxr-xr-x+ 40 sebas sebas 4096 Jun  9 10:42 ..
drwxr-xr-x   3 sebas sebas 4096 Apr 21 16:25 extensions
-rw-r--r--   1 sebas sebas  420 Apr 14 11:07 .skill-lock.json
drwxr-xr-x  10 sebas sebas 4096 Apr 30 20:33 skills
drwxr-xr-x   7 sebas sebas 4096 Apr 11 16:14 skills.bck

/home/sebas/.pi:
total 14064
drwxrwxr-x   5 sebas sebas     4096 May  1 16:06 .
drwxr-xr-x+ 40 sebas sebas     4096 Jun  9 10:42 ..
drwxrwxr-x   8 sebas sebas     4096 Jun  9 10:03 agent
-rw-r--r--   1 sebas sebas      830 Jun  9 10:42 free.json
-rw-r--r--   1 sebas sebas  1941663 Jun  9 10:42 free.log
-rw-rw-r--   1 sebas sebas 12420404 Jun  9 10:42 modelmatch.log
drwxr-xr-x   2 sebas sebas     4096 Apr 23 13:45 pi-acp
drwxrwxr-x   3 sebas sebas     4096 May  1 16:06 whatsapp-pi
---
/home/sebas/.pi/whatsapp-pi/config.json
/home/sebas/.pi/agent/bin/fd
/home/sebas/.pi/agent/telegram-live-resume-ack.json
/home/sebas/.pi/agent/auth.json
/home/sebas/.pi/agent/themes/purple-user-bubble.json
/home/sebas/.pi/agent/telegram-live-sessions.json
/home/sebas/.pi/agent/telegram-live-resume-request.json
/home/sebas/.pi/agent/settings.json
/home/sebas/.pi/agent/extensions/questionnaire.ts
/home/sebas/.pi/modelmatch.log
/home/sebas/.pi/free.json
/home/sebas/.pi/pi-acp/session-map.json
/home/sebas/.pi/free.log


**Inspecting architecture options**

I think I need to explore more options regarding the architecture. It seems like my initial thoughts might not be sufficient. I should inspect the workflow-setup script closely, as it could be key to the porting process. I wonder if elements of isolation are relevant here too. Let's make sure I'm covering all bases to come up with a well-rounded approach! I’m curious to see what I discover.


#!/usr/bin/env bash
# Entry point for skills. Emits all vars needed for daily workflow use.
# repos/teams are always bundled (shared team config).
# local-config.json is the only user-local file (maps repo names to local paths).
# Usage: eval "$(bash "${CLAUDE_SKILL_DIR}/../../scripts/workflow-setup.sh" [workspace_root])"
set -euo pipefail

script_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
plugin_root="$(cd "$script_dir/.." && pwd)"
workspace_root="${1:-$PWD}"
workspace_root="$(cd "$workspace_root" && pwd)"

state_home="${HUMAND_WORKFLOW_STATE_HOME:-${XDG_STATE_HOME:-$HOME/.local/state}/humand-tech-workflow}"
config_home="${HUMAND_WORKFLOW_CONFIG_HOME:-${XDG_CONFIG_HOME:-$HOME/.config}/humand-tech-workflow}"

bundled_config_dir="$plugin_root/config/workflow"

if [ -f "$config_home/local-config.json" ]; then
  local_config_file="$config_home/local-config.json"
else
  local_config_file=""
  echo "⚠  local-config.json not found. Run /initial-setup to configure your local repo paths before using other skills." >&2
fi

emit_var() {
  local key="$1"
  local value="$2"
  printf '%s=%q\n' "$key" "$value"
}

emit_var "PLUGIN_ROOT" "$plugin_root"
emit_var "WORKSPACE_ROOT" "$workspace_root"
emit_var "STATE_HOME" "$state_home"
emit_var "CONFIG_HOME" "$config_home"
emit_var "REPOS_FILE" "$bundled_config_dir/repos.json"
emit_var "TEAMS_FILE" "$bundled_config_dir/teams.json"
emit_var "LOCAL_CONFIG_FILE" "$local_config_file"
emit_var "BUNDLED_LOCAL_CONFIG_EXAMPLE_FILE" "$bundled_config_dir/local-config.example.json"


# Feature Resolution

How skills determine the active feature and which repo paths to operate on.

## When to use

If the active feature is already clear from conversation context (e.g. the user just ran /start, or this session has been working on a specific branch), use that directly — no resolution needed.

Otherwise, resolve from git:

## Algorithm

1. Run `git branch --show-current` in CWD → `branch`
2. If CWD is not a git repo, iterate repos in `$LOCAL_CONFIG_FILE` and find one on a non-base branch
3. For each repo in `$LOCAL_CONFIG_FILE`:
   - Run `git worktree list --porcelain` in the main checkout path
   - If a worktree entry matches `branch` → use that worktree path as the repo's active path
   - Else if `git -C <main_path> branch --show-current` == `branch` → use main checkout path
   - Else → repo not in this feature, skip
4. Result: `{ branch, repos: { repoKey: absolutePath } }` — in memory only

If no repo is found on any non-base branch: stop and tell user to run `/start` first.

An optional branch argument (e.g. `/commit feat/SQSH-1234-foo`) overrides CWD detection.

## Ticket extraction

Extract the ticket key from the branch name if present:
- `feat/SQSH-1672-add-profile` → `SQSH-1672`
- `NO-CARD-fix-header` → no ticket
- `chore/no-ticket-update-deps` → no ticket

If ticket metadata (title, description) is needed for a PR body, fetch from Jira MCP at invocation time using the extracted key.


ENOENT: no such file or directory, access '/home/sebas/work/humand/hu-ai-agent-plugin/plugins/humand-tech/.claude/settings.local.json'


**Considering selective imports**

I'm thinking about using a selective import of Human workflows rather than a raw plugin hook. I might not need to inspect the commit or PR, but it could help to identify a high-value import subset from the start, like status or summary. PR and merge-watch might matter too, so maybe I should mention those. I could also run a grep on my laptop to check which skills are available beyond local. Figma skills and settings might be local, but they probably aren’t necessary.

todo

implement isolated Humand mode with minimal workflow subset


Updated #2 (in_progress → completed)

Clone all Humand repos locally

Clone every repository listed in /home/sebas/work/humand/REMOTE-URLS.tsv into the Humand workspace using the authenticated work GitHub account.

Analyze Humand agent functionality import into Pi agent

Inspect Humand laptop/repo setup, especially hu-ai-agent-plugin and humand-tech, then propose a minimal integration path into the Pi agent with soft isolation and partial real parity as the done gate for this stage.


Sí. Vi la forma.

## Lectura real

La mayor parte útil está en:

- `hu-ai-agent-plugin/plugins/humand-tech`
- no tanto en los `AGENTS.md`

Lo fuerte de `humand-tech` es 3 cosas:

1. **disciplina / skill pack**
   - superpowers vendoreado
   - planning, debugging, TDD, review

2. **workflow Humand**
   - `/start`
   - `/status`
   - `/summary`
   - `/initial-setup`
   - también `commit`, `pr`, `merge-watch`

3. **config multi-repo**
   - `repos.json`
   - `teams.json`
   - `local-config.json`
   - resolución por worktrees/branches

## Choque con Pi actual

Si copiamos eso “tal cual”, ensucia.

Conflictos:

- hook de session start de superpowers
- reglas globales que quieren forzar skills
- comandos estilo plugin `/start /status ...`
- dependencias de AskUserQuestion / Atlassian MCP / plugin runtime

Eso **sí afectaría** Ballbox/personal si entra global.

## Recomendación

No portar el plugin entero.

Portar un **modo Humand aislado**:

### Capa 1. Contexto Humand aislado
Crear un paquete local tipo:

- `~/.agents/skills/humand-tech-*`
  o mejor
- proyecto/local agent pack en workspace Humand

Con activación explícita, por ejemplo:
- skill `ballbox-company` style pero para Humand
- o agente guardado `humand-tech`
- o ambos

Meta:
- nada cambia si no estás en contexto Humand

### Capa 2. Tomar sólo el subset de más valor
Portar primero:

- repo registry + local path resolution
- feature resolution por branch/worktree
- `initial-setup`
- `status`
- `start` mínimo

Después, si sirve:

- `pr`
- `merge-watch`
- `summary`

No traería de entrada:
- hook completo de superpowers
- todo el marketplace/plugin packaging
- compatibilidad Cursor/Claude plugin
- skills creativos secundarios

### Capa 3. Adaptación a Pi, no clon exacto
Reescribir la lógica al mundo Pi:

- `questionnaire` en vez de AskUserQuestion
- `todo` en vez de flujo interno plugin
- `subagent` donde valga
- `gh` local ya autenticado con `sfavaron-hu`
- laptop helpers sólo si algo vive en la laptop
- Agents DB sigue siendo el durable memory, no el state del plugin

## Qué sí conviene copiar casi literal

De `humand-tech`:

- `config/workflow/repos.json`
- `config/workflow/teams.json`
- `scripts/workflow-setup.sh` idea
- `docs/feature-resolution.md` algoritmo
- partes de `/start`
- partes de `/status`
- partes de `/initial-setup`

Eso tiene valor real y poco bloat.

## Qué no conviene copiar

- `hooks/session-start`
- `using-superpowers` como regla global
- plugin manifests `.claude-plugin` / `.cursor-plugin`
- toda la capa “must use skill before any response”
- skills genéricos que ya chocan con tu AGENTS del Pi

## Diseño mínimo bueno

Propuesta:

### A. Nuevo skill local
`humand-tech-context`
- carga org/repos/config
- verifica auth GitHub de laburo
- activa convención Humand sólo en esa tarea

### B. Nuevo directorio de workflow
Algo como:

- `/home/sebas/work/humand/.pi-humand/`
  o
- `/home/sebas/pi-config/humand/`

Con:
- `repos.json`
- `teams.json`
- `local-config.json`
- scripts chicos

### C. Comandos/skills Pi específicos
- `humand-initial-setup`
- `humand-start`
- `humand-status`

y después:
- `humand-pr`
- `humand-merge-watch`
- `humand-summary`

Así el core Pi queda limpio.

## Mi criterio

Objetivo real no es “traer todo”.
Es:

- **paridad parcial útil**
- **cero contaminación global**
- **reusar configs y algoritmos buenos**
- **no importar dogma/plugin harness innecesario**

## Plan concreto

Fase 1:
1. extraer configs y algoritmo de feature resolution
2. crear skill/contexto Humand aislado
3. implementar `humand-initial-setup`
4. implementar `humand-status`
5. implementar `humand-start` mínimo

Fase 2:
6. `humand-pr`
7. `humand-merge-watch`

Fase 3:
8. evaluar si `summary` vale la pena acá

## Mi recomendación final

Sí traerlo.
Pero **como vertical Humand aislada**, no como upgrade global del agente Pi.

Si querés, siguiente paso hago esto:
- audito archivos exactos a reutilizar
- te propongo estructura destino en este repo
- y arranco implementación del esqueleto mínimo

Si querés que ejecute ya, hago:
**“esqueleto Humand aislado + status/start/setup mínimos”**.


hay que clonar todo incluido el hook, pero lo aislaria y llamaria explicito con algun trigger (mejor si es automatico cuando trabajamos en carpeta de humand, pero prioridad que sea reliable y anunciado en la sesion.
si queres traelo de a partes y anda probando, no hace falta hacerlo todo de una


**Planning task implementation**

I need to respond with a plan and likely start implementation since the user clarified some things. I’m considering creating a to-do list and inspecting the project structure to see where I can add updates. Using memory might be an option later, but since this task is meaningful, I can proceed. I should maybe mention any contradictions or risks regarding reliability. Let's go ahead and create those to-do tasks, starting with the import of configs or isolated hooks.

Implement isolated Humand mode in Pi agent

Clone the Humand plugin behavior in parts, including the hook, but isolate it behind explicit/auto Humand activation with reliable session announcement and no effect outside Humand work.


Created #3: Implement isolated Humand mode in Pi agent (pending)

Clone all Humand repos locally


Updated #3 (pending → in_progress)

Clone all Humand repos locally


bash

cd /home/sebas/pi-config && find . -maxdepth 2 \( -name package.json -o -name tsconfig.json -o -name '*.ts' -o -name '*.js' \) | sort | sed -n '1,200p'


./extensions/questionnaire.ts
./extensions/session-memory-dispatcher.ts
./node_modules/bignumber.js
./node_modules/highlight.js
./npm/package.json
./package.json
./scripts/task-phase-lib.ts
./tsconfig.json


/**
 * Questionnaire Tool - Unified tool for asking single or multiple questions
 *
 * Single question: simple options list
 * Multiple questions: tab bar navigation between questions
 */

import type { ExtensionAPI } from "@mariozechner/pi-coding-agent";
import { Editor, type EditorTheme, Key, matchesKey, Text, truncateToWidth } from "@mariozechner/pi-tui";
import { Type } from "@sinclair/typebox";

// Types
interface QuestionOption {
	value: string;
	label: string;
	description?: string;
}

type RenderOption = QuestionOption & { isOther?: boolean };

interface Question {
	id: string;
	label: string;
	prompt: string;
	options: QuestionOption[];
	allowOther: boolean;
}

interface Answer {
	id: string;
	value: string;
	label: string;
	wasCustom: boolean;
	index?: number;
}

interface QuestionnaireResult {
	questions: Question[];
	answers: Answer[];
	cancelled: boolean;
}

// Schema
const QuestionOptionSchema = Type.Object({
	value: Type.String({ description: "The value returned when selected" }),
	label: Type.String({ description: "Display label for the option" }),
	description: Type.Optional(Type.String({ description: "Optional description shown below label" })),
});

const QuestionSchema = Type.Object({
	id: Type.String({ description: "Unique identifier for this question" }),
	label: Type.Optional(
		Type.String({
			description: "Short contextual label for tab bar, e.g. 'Scope', 'Priority' (defaults to Q1, Q2)",
		}),
	),
	prompt: Type.String({ description: "The full question text to display" }),
	options: Type.Array(QuestionOptionSchema, { description: "Available options to choose from" }),
	allowOther: Type.Optional(Type.Boolean({ description: "Allow 'Type something' option (default: true)" })),
});

const QuestionnaireParams = Type.Object({
	questions: Type.Array(QuestionSchema, { description: "Questions to ask the user" }),
});

function errorResult(
	message: string,
	questions: Question[] = [],
): { content: { type: "text"; text: string }[]; details: QuestionnaireResult } {
	return {
		content: [{ type: "text", text: message }],
		details: { questions, answers: [], cancelled: true },
	};
}

export default function questionnaire(pi: ExtensionAPI) {
	pi.registerTool({
		name: "questionnaire",
		label: "Questionnaire",
		description:
			"Ask the user one or more questions. Use for clarifying requirements, getting preferences, or confirming decisions. For single questions, shows a simple option list. For multiple questions, shows a tab-based interface.",
		parameters: QuestionnaireParams,

		async execute(_toolCallId, params, _signal, _onUpdate, ctx) {
			if (!ctx.hasUI) {
				return errorResult("Error: UI not available (running in non-interactive mode)");
			}
			if (params.questions.length === 0) {
				return errorResult("Error: No questions provided");
			}

			// Normalize questions with defaults
			const questions: Question[] = params.questions.map((q, i) => ({
				...q,
				label: q.label || `Q${i + 1}`,
				allowOther: q.allowOther !== false,
			}));

			const isMulti = questions.length > 1;
			const totalTabs = questions.length + 1; // questions + Submit

			const result = await ctx.ui.custom<QuestionnaireResult>((tui, theme, _kb, done) => {
				// State
				let currentTab = 0;
				let optionIndex = 0;
				let inputMode = false;
				let inputQuestionId: string | null = null;
				let cachedLines: string[] | undefined;
				const answers = new Map<string, Answer>();

				// Editor for "Type something" option
				const editorTheme: EditorTheme = {
					borderColor: (s) => theme.fg("accent", s),
					selectList: {
						selectedPrefix: (t) => theme.fg("accent", t),
						selectedText: (t) => theme.fg("accent", t),
						description: (t) => theme.fg("muted", t),
						scrollInfo: (t) => theme.fg("dim", t),
						noMatch: (t) => theme.fg("warning", t),
					},
				};
				const editor = new Editor(tui, editorTheme);

				// Helpers
				function refresh() {
					cachedLines = undefined;
					tui.requestRender();
				}

				function submit(cancelled: boolean) {
					done({ questions, answers: Array.from(answers.values()), cancelled });
				}

				function currentQuestion(): Question | undefined {
					return questions[currentTab];
				}

				function currentOptions(): RenderOption[] {
					const q = currentQuestion();
					if (!q) return [];
					const opts: RenderOption[] = [...q.options];
					if (q.allowOther) {
						opts.push({ value: "__other__", label: "Type something.", isOther: true });
					}
					return opts;
				}

				function allAnswered(): boolean {
					return questions.every((q) => answers.has(q.id));
				}

				function advanceAfterAnswer() {
					if (!isMulti) {
						submit(false);
						return;
					}
					if (currentTab < questions.length - 1) {
						currentTab++;
					} else {
						currentTab = questions.length; // Submit tab
					}
					optionIndex = 0;
					refresh();
				}

				function saveAnswer(questionId: string, value: string, label: string, wasCustom: boolean, index?: number) {
					answers.set(questionId, { id: questionId, value, label, wasCustom, index });
				}

				// Editor submit callback
				editor.onSubmit = (value) => {
					if (!inputQuestionId) return;
					const trimmed = value.trim() || "(no response)";
					saveAnswer(inputQuestionId, trimmed, trimmed, true);
					inputMode = false;
					inputQuestionId = null;
					editor.setText("");
					advanceAfterAnswer();
				};

				function handleInput(data: string) {
					// Input mode: route to editor
					if (inputMode) {
						if (matchesKey(data, Key.escape)) {
							inputMode = false;
							inputQuestionId = null;
							editor.setText("");
							refresh();
							return;
						}
						editor.handleInput(data);
						refresh();
						return;
					}

					const q = currentQuestion();
					const opts = currentOptions();

					// Tab navigation (multi-question only)
					if (isMulti) {
						if (matchesKey(data, Key.tab) || matchesKey(data, Key.right)) {
							currentTab = (currentTab + 1) % totalTabs;
							optionIndex = 0;
							refresh();
							return;
						}
						if (matchesKey(data, Key.shift("tab")) || matchesKey(data, Key.left)) {
							currentTab = (currentTab - 1 + totalTabs) % totalTabs;
							optionIndex = 0;
							refresh();
							return;
						}
					}

					// Submit tab
					if (currentTab === questions.length) {
						if (matchesKey(data, Key.enter) && allAnswered()) {
							submit(false);
						} else if (matchesKey(data, Key.escape)) {
							submit(true);
						}
						return;
					}

					// Option navigation
					if (matchesKey(data, Key.up)) {
						optionIndex = Math.max(0, optionIndex - 1);
						refresh();
						return;
					}
					if (matchesKey(data, Key.down)) {
						optionIndex = Math.min(opts.length - 1, optionIndex + 1);
						refresh();
						return;
					}

					// Select option
					if (matchesKey(data, Key.enter) && q) {
						const opt = opts[optionIndex];
						if (opt.isOther) {
							inputMode = true;
							inputQuestionId = q.id;
							editor.setText("");
							refresh();
							return;
						}
						saveAnswer(q.id, opt.value, opt.label, false, optionIndex + 1);
						advanceAfterAnswer();
						return;
					}

					// Cancel
					if (matchesKey(data, Key.escape)) {
						submit(true);
					}
				}

				function render(width: number): string[] {
					if (cachedLines) return cachedLines;

[168 more lines in file. Use offset=261 to continue.]


cd /home/sebas/pi-config && grep -RIn "extensions" . | head -120


import path from "node:path";
import type { ExtensionAPI } from "@mariozechner/pi-coding-agent";
import { appendToolUsageEvent } from "./_shared/tool-usage";

const DISPATCH_URL = process.env.PI_SESSION_MEMORY_DISPATCH_URL || "http://127.0.0.1:17882/api/session-memory";
const PROMPT_SAVE = "Yes";
const PROMPT_SKIP = "No";
const PROMPT_CANCEL = "Cancel";

function textFromMessage(message: any): string {
	if (!message || !Array.isArray(message.content)) return "";
	return message.content
		.filter((part: any) => part?.type === "text" && typeof part.text === "string")
		.map((part: any) => part.text)
		.join("\n")
		.trim();
}

function truncate(text: string | undefined, max = 220): string {
	const value = (text || "").replace(/\s+/g, " ").trim();
	if (!value) return "";
	return value.length > max ? value.slice(0, max - 1) + "…" : value;
}

function inferScope(cwd: string): "global" | "project" {
	const home = path.resolve(process.env.HOME || "/home/sebas");
	const resolved = path.resolve(cwd);
	if (resolved === home) return "global";
	if (resolved.startsWith(path.join(home, ".pi"))) return "global";
	return "project";
}

function getSessionStats(ctx: any) {
	const branch = ctx.sessionManager.getBranch();
	let userCount = 0;
	let assistantCount = 0;
	let lastUserText = "";
	let lastAssistantText = "";

	for (const entry of branch) {
		if (entry?.type !== "message") continue;
		const message = entry.message;
		if (!message || typeof message !== "object" || !("role" in message)) continue;
		if (message.role === "user") {
			userCount += 1;
			lastUserText = textFromMessage(message) || lastUserText;
		}
		if (message.role === "assistant") {
			assistantCount += 1;
			lastAssistantText = textFromMessage(message) || lastAssistantText;
		}
	}

	return {
		branch,
		userCount,
		assistantCount,
		lastUserText,
		lastAssistantText,
		shouldPrompt: userCount > 0 && assistantCount > 0,
	};
}

function buildHookPayload(ctx: any, stats: ReturnType<typeof getSessionStats>, reason: string) {
	return {
		session_id: ctx.sessionManager.getLeafId?.() || null,
		session_file: ctx.sessionManager.getSessionFile?.() || null,
		reason,
		cwd: ctx.cwd,
		scope: inferScope(ctx.cwd),
		user_messages: stats.userCount,
		assistant_messages: stats.assistantCount,
		last_user_text: truncate(stats.lastUserText, 2000),
		last_assistant_text: truncate(stats.lastAssistantText, 2000),
		branch: stats.branch,
		memory_hints: {
			observed_messages: stats.userCount + stats.assistantCount,
			has_latest_dialogue: Boolean(stats.lastUserText || stats.lastAssistantText),
		},
	};
}

async function dispatchMemory(payload: any) {
	const response = await fetch(DISPATCH_URL, {
		method: "POST",
		headers: { "Content-Type": "application/json" },
		body: JSON.stringify(payload),
	});
	if (!response.ok) {
		throw new Error(`session memory dispatcher failed: ${response.status} ${response.statusText}`);
	}
	return response.json();
}

export default function (pi: ExtensionAPI) {
	let promptHandledForCurrentSession = false;

	async function runPrompt(ctx: any, reason: string, options?: { allowCancel?: boolean; title?: string; timeoutMs?: number }) {
		if (promptHandledForCurrentSession) return { cancel: false, skipped: true };
		if (!ctx.hasUI) return { cancel: false, skipped: true };

		const stats = getSessionStats(ctx);
		if (!stats.shouldPrompt) return { cancel: false, skipped: true };

		const allowCancel = options?.allowCancel ?? false;
		const timeoutMs = options?.timeoutMs;
		const title = options?.title || "Before closing this session";
		const choices = allowCancel ? [PROMPT_SAVE, PROMPT_SKIP, PROMPT_CANCEL] : [PROMPT_SAVE, PROMPT_SKIP];
		const dialogOptions = timeoutMs ? { timeout: timeoutMs } : undefined;
		const choice = await ctx.ui.select(title, choices, dialogOptions);

		if (choice === PROMPT_CANCEL || (allowCancel && choice === undefined)) {
			promptHandledForCurrentSession = false;
			return { cancel: true, skipped: false };
		}

		if (choice !== PROMPT_SAVE) {
			promptHandledForCurrentSession = true;
			return { cancel: false, skipped: true };
		}

		const payload = buildHookPayload(ctx, stats, reason);
		try {
			const result = await dispatchMemory({
				...payload,
				trigger: "session-memory-dispatcher",
			});
			promptHandledForCurrentSession = true;
			ctx.ui.notify(`Session analysis queued${result?.job_file ? `: ${result.job_file}` : ""}`, "info");
			return { cancel: false, skipped: false, queued: true, jobFile: result?.job_file || null };
		} catch (error) {
			promptHandledForCurrentSession = false;
			const message = error instanceof Error ? error.message : String(error);
			ctx.ui.notify(message, "error");
			if (!allowCancel) return { cancel: false, skipped: true, error: message };
			const ok = await ctx.ui.confirm("Session analysis failed", "Continue closing this session without queueing?", dialogOptions);
			if (!ok) return { cancel: true, skipped: false, error: message };
			promptHandledForCurrentSession = true;
			return { cancel: false, skipped: true, error: message };
		}
	}

	pi.on("session_before_switch", async (event, ctx) => {
		const result = await runPrompt(ctx, `before_switch:${event.reason}`, { allowCancel: true, title: "Analyze this session for memory?" });
		if (result.cancel) return { cancel: true };
		return undefined;
	});

	pi.on("session_before_fork", async (_event, ctx) => {
		const result = await runPrompt(ctx, "before_fork", { allowCancel: true, title: "Analyze this session for memory?" });
		if (result.cancel) return { cancel: true };
		return undefined;
	});

	pi.on("session_before_shutdown" as any, async (event: any, ctx: any) => {
		const result = await runPrompt(ctx, `before_shutdown:${event.reason}`, { allowCancel: true, title: "Analyze this session for memory?", timeoutMs: 12000 });
		if (result.cancel) return { cancel: true };
		return undefined;
	});

	pi.on("session_shutdown", async (_event, ctx) => {
		await runPrompt(ctx, "shutdown_fallback", { allowCancel: false, title: "Analyze this session for memory?", timeoutMs: 12000 });
	});

	pi.registerCommand("remember-session", {
		description: "Queue a session analysis from the current session",
		handler: async (_args, ctx) => {
			const startedAt = Date.now();
			appendToolUsageEvent({ kind: "extension_command", name: "remember-session", cwd: ctx.cwd, status: "started" });
			promptHandledForCurrentSession = false;
			const result = await runPrompt(ctx, "manual_command", { allowCancel: false, title: "Analyze this session for memory?" });
			appendToolUsageEvent({
				kind: "extension_command",
				name: "remember-session",
				cwd: ctx.cwd,
				status: result?.error ? "failed" : result?.queued ? "succeeded" : "cancelled",
				durationMs: Date.now() - startedAt,
				errorSummary: result?.error,
			});
		},
	});
}