skillware 0.5.0__tar.gz → 0.5.2__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (198) hide show
  1. {skillware-0.5.0/skillware.egg-info → skillware-0.5.2}/PKG-INFO +17 -5
  2. {skillware-0.5.0 → skillware-0.5.2}/README.md +1 -1
  3. {skillware-0.5.0 → skillware-0.5.2}/pyproject.toml +22 -3
  4. {skillware-0.5.0 → skillware-0.5.2}/skills/finance/uk_companies_house_handler/data/terminology_map.yaml +11 -0
  5. skillware-0.5.2/skills/finance/uk_companies_house_handler/instructions.md +85 -0
  6. skillware-0.5.2/skills/finance/uk_companies_house_handler/manifest.yaml +140 -0
  7. {skillware-0.5.0 → skillware-0.5.2}/skills/finance/uk_companies_house_handler/skill.py +451 -50
  8. skillware-0.5.2/skills/finance/uk_companies_house_handler/test_skill.py +1540 -0
  9. skillware-0.5.2/skills/office/gmail_handler/attachments.py +153 -0
  10. {skillware-0.5.0 → skillware-0.5.2}/skills/office/gmail_handler/card.json +1 -1
  11. skillware-0.5.2/skills/office/gmail_handler/data/config.yaml.example +21 -0
  12. skillware-0.5.2/skills/office/gmail_handler/file_ref.py +165 -0
  13. {skillware-0.5.0 → skillware-0.5.2}/skills/office/gmail_handler/instructions.md +29 -6
  14. {skillware-0.5.0 → skillware-0.5.2}/skills/office/gmail_handler/mail.py +39 -0
  15. {skillware-0.5.0 → skillware-0.5.2}/skills/office/gmail_handler/manifest.yaml +46 -10
  16. {skillware-0.5.0 → skillware-0.5.2}/skills/office/gmail_handler/skill.py +281 -40
  17. {skillware-0.5.0 → skillware-0.5.2}/skills/office/gmail_handler/test_skill.py +165 -0
  18. skillware-0.5.2/skills/security/deceptive_ui_guard/card.json +57 -0
  19. skillware-0.5.2/skills/security/deceptive_ui_guard/guard.py +585 -0
  20. skillware-0.5.2/skills/security/deceptive_ui_guard/instructions.md +55 -0
  21. skillware-0.5.2/skills/security/deceptive_ui_guard/kb/deception_lexicon.json +204 -0
  22. skillware-0.5.2/skills/security/deceptive_ui_guard/manifest.yaml +83 -0
  23. skillware-0.5.2/skills/security/deceptive_ui_guard/skill.py +59 -0
  24. skillware-0.5.2/skills/security/deceptive_ui_guard/test_skill.py +179 -0
  25. skillware-0.5.2/skillware/branding/skillware_logo.png +0 -0
  26. {skillware-0.5.0 → skillware-0.5.2}/skillware/cli.py +208 -5
  27. skillware-0.5.2/skillware/cli_mail.py +743 -0
  28. skillware-0.5.2/skillware/core/__init__.py +0 -0
  29. {skillware-0.5.0 → skillware-0.5.2}/skillware/core/config.py +17 -4
  30. skillware-0.5.2/skillware/core/mail_config.py +907 -0
  31. {skillware-0.5.0 → skillware-0.5.2/skillware.egg-info}/PKG-INFO +17 -5
  32. {skillware-0.5.0 → skillware-0.5.2}/skillware.egg-info/SOURCES.txt +15 -0
  33. {skillware-0.5.0 → skillware-0.5.2}/skillware.egg-info/requires.txt +2 -0
  34. {skillware-0.5.0 → skillware-0.5.2}/tests/test_cli.py +63 -0
  35. {skillware-0.5.0 → skillware-0.5.2}/tests/test_config.py +40 -0
  36. skillware-0.5.2/tests/test_github_labels.py +132 -0
  37. skillware-0.5.2/tests/test_mail_config.py +254 -0
  38. {skillware-0.5.0 → skillware-0.5.2}/tests/test_registry_docs.py +35 -0
  39. {skillware-0.5.0 → skillware-0.5.2}/tests/test_version_policy.py +1 -1
  40. skillware-0.5.0/skills/finance/uk_companies_house_handler/instructions.md +0 -75
  41. skillware-0.5.0/skills/finance/uk_companies_house_handler/manifest.yaml +0 -73
  42. skillware-0.5.0/skills/finance/uk_companies_house_handler/test_skill.py +0 -650
  43. skillware-0.5.0/tests/test_github_labels.py +0 -64
  44. {skillware-0.5.0 → skillware-0.5.2}/LICENSE +0 -0
  45. {skillware-0.5.0 → skillware-0.5.2}/MANIFEST.in +0 -0
  46. {skillware-0.5.0 → skillware-0.5.2}/setup.cfg +0 -0
  47. {skillware-0.5.0 → skillware-0.5.2}/skills/__init__.py +0 -0
  48. {skillware-0.5.0 → skillware-0.5.2}/skills/compliance/__init__.py +0 -0
  49. {skillware-0.5.0 → skillware-0.5.2}/skills/compliance/mica_module/__init__.py +0 -0
  50. {skillware-0.5.0 → skillware-0.5.2}/skills/compliance/mica_module/card.json +0 -0
  51. {skillware-0.5.0 → skillware-0.5.2}/skills/compliance/mica_module/instructions.md +0 -0
  52. {skillware-0.5.0 → skillware-0.5.2}/skills/compliance/mica_module/manifest.yaml +0 -0
  53. {skillware-0.5.0 → skillware-0.5.2}/skills/compliance/mica_module/mica_corpus.json +0 -0
  54. {skillware-0.5.0 → skillware-0.5.2}/skills/compliance/mica_module/skill.py +0 -0
  55. {skillware-0.5.0 → skillware-0.5.2}/skills/compliance/mica_module/test_skill.py +0 -0
  56. {skillware-0.5.0 → skillware-0.5.2}/skills/compliance/pii_masker/__init__.py +0 -0
  57. {skillware-0.5.0 → skillware-0.5.2}/skills/compliance/pii_masker/card.json +0 -0
  58. {skillware-0.5.0 → skillware-0.5.2}/skills/compliance/pii_masker/instructions.md +0 -0
  59. {skillware-0.5.0 → skillware-0.5.2}/skills/compliance/pii_masker/manifest.yaml +0 -0
  60. {skillware-0.5.0 → skillware-0.5.2}/skills/compliance/pii_masker/skill.py +0 -0
  61. {skillware-0.5.0 → skillware-0.5.2}/skills/compliance/pii_masker/test_skill.py +0 -0
  62. {skillware-0.5.0 → skillware-0.5.2}/skills/compliance/tos_evaluator/__init__.py +0 -0
  63. {skillware-0.5.0 → skillware-0.5.2}/skills/compliance/tos_evaluator/card.json +0 -0
  64. {skillware-0.5.0 → skillware-0.5.2}/skills/compliance/tos_evaluator/instructions.md +0 -0
  65. {skillware-0.5.0 → skillware-0.5.2}/skills/compliance/tos_evaluator/manifest.yaml +0 -0
  66. {skillware-0.5.0 → skillware-0.5.2}/skills/compliance/tos_evaluator/skill.py +0 -0
  67. {skillware-0.5.0 → skillware-0.5.2}/skills/compliance/tos_evaluator/test_skill.py +0 -0
  68. {skillware-0.5.0 → skillware-0.5.2}/skills/creative/__init__.py +0 -0
  69. {skillware-0.5.0 → skillware-0.5.2}/skills/creative/bg_remover/__init__.py +0 -0
  70. {skillware-0.5.0 → skillware-0.5.2}/skills/creative/bg_remover/card.json +0 -0
  71. {skillware-0.5.0 → skillware-0.5.2}/skills/creative/bg_remover/instructions.md +0 -0
  72. {skillware-0.5.0 → skillware-0.5.2}/skills/creative/bg_remover/manifest.yaml +0 -0
  73. {skillware-0.5.0 → skillware-0.5.2}/skills/creative/bg_remover/skill.py +0 -0
  74. {skillware-0.5.0 → skillware-0.5.2}/skills/creative/bg_remover/test_skill.py +0 -0
  75. {skillware-0.5.0 → skillware-0.5.2}/skills/data_engineering/__init__.py +0 -0
  76. {skillware-0.5.0 → skillware-0.5.2}/skills/data_engineering/novelty_extractor/__init__.py +0 -0
  77. {skillware-0.5.0 → skillware-0.5.2}/skills/data_engineering/novelty_extractor/card.json +0 -0
  78. {skillware-0.5.0 → skillware-0.5.2}/skills/data_engineering/novelty_extractor/instructions.md +0 -0
  79. {skillware-0.5.0 → skillware-0.5.2}/skills/data_engineering/novelty_extractor/manifest.yaml +0 -0
  80. {skillware-0.5.0 → skillware-0.5.2}/skills/data_engineering/novelty_extractor/skill.py +0 -0
  81. {skillware-0.5.0 → skillware-0.5.2}/skills/data_engineering/novelty_extractor/test_skill.py +0 -0
  82. {skillware-0.5.0 → skillware-0.5.2}/skills/data_engineering/synthetic_generator/__init__.py +0 -0
  83. {skillware-0.5.0 → skillware-0.5.2}/skills/data_engineering/synthetic_generator/card.json +0 -0
  84. {skillware-0.5.0 → skillware-0.5.2}/skills/data_engineering/synthetic_generator/instructions.md +0 -0
  85. {skillware-0.5.0 → skillware-0.5.2}/skills/data_engineering/synthetic_generator/manifest.yaml +0 -0
  86. {skillware-0.5.0 → skillware-0.5.2}/skills/data_engineering/synthetic_generator/skill.py +0 -0
  87. {skillware-0.5.0 → skillware-0.5.2}/skills/data_engineering/synthetic_generator/test_skill.py +0 -0
  88. {skillware-0.5.0 → skillware-0.5.2}/skills/defi/__init__.py +0 -0
  89. {skillware-0.5.0 → skillware-0.5.2}/skills/defi/evm_tx_handler/__init__.py +0 -0
  90. {skillware-0.5.0 → skillware-0.5.2}/skills/defi/evm_tx_handler/abis.py +0 -0
  91. {skillware-0.5.0 → skillware-0.5.2}/skills/defi/evm_tx_handler/card.json +0 -0
  92. {skillware-0.5.0 → skillware-0.5.2}/skills/defi/evm_tx_handler/config.yaml.example +0 -0
  93. {skillware-0.5.0 → skillware-0.5.2}/skills/defi/evm_tx_handler/data/addressbook.yaml +0 -0
  94. {skillware-0.5.0 → skillware-0.5.2}/skills/defi/evm_tx_handler/data/chains.yaml +0 -0
  95. {skillware-0.5.0 → skillware-0.5.2}/skills/defi/evm_tx_handler/data/tokens.yaml +0 -0
  96. {skillware-0.5.0 → skillware-0.5.2}/skills/defi/evm_tx_handler/instructions.md +0 -0
  97. {skillware-0.5.0 → skillware-0.5.2}/skills/defi/evm_tx_handler/manifest.yaml +0 -0
  98. {skillware-0.5.0 → skillware-0.5.2}/skills/defi/evm_tx_handler/skill.py +0 -0
  99. {skillware-0.5.0 → skillware-0.5.2}/skills/defi/evm_tx_handler/test_skill.py +0 -0
  100. {skillware-0.5.0 → skillware-0.5.2}/skills/dev_tools/__init__.py +0 -0
  101. {skillware-0.5.0 → skillware-0.5.2}/skills/dev_tools/issue_resolver/__init__.py +0 -0
  102. {skillware-0.5.0 → skillware-0.5.2}/skills/dev_tools/issue_resolver/card.json +0 -0
  103. {skillware-0.5.0 → skillware-0.5.2}/skills/dev_tools/issue_resolver/instructions.md +0 -0
  104. {skillware-0.5.0 → skillware-0.5.2}/skills/dev_tools/issue_resolver/manifest.yaml +0 -0
  105. {skillware-0.5.0 → skillware-0.5.2}/skills/dev_tools/issue_resolver/skill.py +0 -0
  106. {skillware-0.5.0 → skillware-0.5.2}/skills/dev_tools/issue_resolver/test_skill.py +0 -0
  107. {skillware-0.5.0 → skillware-0.5.2}/skills/dev_tools/issue_resolver/workflow.py +0 -0
  108. {skillware-0.5.0 → skillware-0.5.2}/skills/finance/__init__.py +0 -0
  109. {skillware-0.5.0 → skillware-0.5.2}/skills/finance/uk_companies_house_handler/__init__.py +0 -0
  110. {skillware-0.5.0 → skillware-0.5.2}/skills/finance/uk_companies_house_handler/card.json +0 -0
  111. {skillware-0.5.0 → skillware-0.5.2}/skills/finance/uk_companies_house_handler/data/api_index.json +0 -0
  112. {skillware-0.5.0 → skillware-0.5.2}/skills/finance/wallet_screening/__init__.py +0 -0
  113. {skillware-0.5.0 → skillware-0.5.2}/skills/finance/wallet_screening/card.json +0 -0
  114. {skillware-0.5.0 → skillware-0.5.2}/skills/finance/wallet_screening/data/entities.ftm.json +0 -0
  115. {skillware-0.5.0 → skillware-0.5.2}/skills/finance/wallet_screening/data/malicious_scs_2025.json +0 -0
  116. {skillware-0.5.0 → skillware-0.5.2}/skills/finance/wallet_screening/data/normalized_fbi_lazarus_20250722_180019.json +0 -0
  117. {skillware-0.5.0 → skillware-0.5.2}/skills/finance/wallet_screening/data/normalized_israel_nbctf_20250722_180019.json +0 -0
  118. {skillware-0.5.0 → skillware-0.5.2}/skills/finance/wallet_screening/data/normalized_uniswap_trm.json +0 -0
  119. {skillware-0.5.0 → skillware-0.5.2}/skills/finance/wallet_screening/instructions.md +0 -0
  120. {skillware-0.5.0 → skillware-0.5.2}/skills/finance/wallet_screening/maintenance/normalization_tool.py +0 -0
  121. {skillware-0.5.0 → skillware-0.5.2}/skills/finance/wallet_screening/maintenance/normalize_uniswap_trm.py +0 -0
  122. {skillware-0.5.0 → skillware-0.5.2}/skills/finance/wallet_screening/manifest.yaml +0 -0
  123. {skillware-0.5.0 → skillware-0.5.2}/skills/finance/wallet_screening/skill.py +0 -0
  124. {skillware-0.5.0 → skillware-0.5.2}/skills/finance/wallet_screening/test_skill.py +0 -0
  125. {skillware-0.5.0 → skillware-0.5.2}/skills/monitoring/__init__.py +0 -0
  126. {skillware-0.5.0 → skillware-0.5.2}/skills/monitoring/token_limiter/__init__.py +0 -0
  127. {skillware-0.5.0 → skillware-0.5.2}/skills/monitoring/token_limiter/budget.py +0 -0
  128. {skillware-0.5.0 → skillware-0.5.2}/skills/monitoring/token_limiter/card.json +0 -0
  129. {skillware-0.5.0 → skillware-0.5.2}/skills/monitoring/token_limiter/data/model_pricing.json +0 -0
  130. {skillware-0.5.0 → skillware-0.5.2}/skills/monitoring/token_limiter/instructions.md +0 -0
  131. {skillware-0.5.0 → skillware-0.5.2}/skills/monitoring/token_limiter/manifest.yaml +0 -0
  132. {skillware-0.5.0 → skillware-0.5.2}/skills/monitoring/token_limiter/skill.py +0 -0
  133. {skillware-0.5.0 → skillware-0.5.2}/skills/monitoring/token_limiter/test_skill.py +0 -0
  134. {skillware-0.5.0 → skillware-0.5.2}/skills/office/__init__.py +0 -0
  135. {skillware-0.5.0 → skillware-0.5.2}/skills/office/gmail_handler/__init__.py +0 -0
  136. {skillware-0.5.0 → skillware-0.5.2}/skills/office/gmail_handler/addressbook.py +0 -0
  137. {skillware-0.5.0 → skillware-0.5.2}/skills/office/gmail_handler/data/.gitignore +0 -0
  138. {skillware-0.5.0 → skillware-0.5.2}/skills/office/gmail_handler/data/addressbook.yaml +0 -0
  139. {skillware-0.5.0 → skillware-0.5.2}/skills/office/pdf_form_filler/__init__.py +0 -0
  140. {skillware-0.5.0 → skillware-0.5.2}/skills/office/pdf_form_filler/card.json +0 -0
  141. {skillware-0.5.0 → skillware-0.5.2}/skills/office/pdf_form_filler/instructions.md +0 -0
  142. {skillware-0.5.0 → skillware-0.5.2}/skills/office/pdf_form_filler/manifest.yaml +0 -0
  143. {skillware-0.5.0 → skillware-0.5.2}/skills/office/pdf_form_filler/skill.py +0 -0
  144. {skillware-0.5.0 → skillware-0.5.2}/skills/office/pdf_form_filler/test_skill.py +0 -0
  145. {skillware-0.5.0 → skillware-0.5.2}/skills/office/pdf_form_filler/utils.py +0 -0
  146. {skillware-0.5.0 → skillware-0.5.2}/skills/optimization/__init__.py +0 -0
  147. {skillware-0.5.0 → skillware-0.5.2}/skills/optimization/prompt_rewriter/__init__.py +0 -0
  148. {skillware-0.5.0 → skillware-0.5.2}/skills/optimization/prompt_rewriter/card.json +0 -0
  149. {skillware-0.5.0 → skillware-0.5.2}/skills/optimization/prompt_rewriter/instructions.md +0 -0
  150. {skillware-0.5.0 → skillware-0.5.2}/skills/optimization/prompt_rewriter/manifest.yaml +0 -0
  151. {skillware-0.5.0 → skillware-0.5.2}/skills/optimization/prompt_rewriter/skill.py +0 -0
  152. {skillware-0.5.0 → skillware-0.5.2}/skills/optimization/prompt_rewriter/test_skill.py +0 -0
  153. {skillware-0.5.0 → skillware-0.5.2}/skills/security/__init__.py +0 -0
  154. {skillware-0.5.0/skills/security/prompt_injection_firewall → skillware-0.5.2/skills/security/deceptive_ui_guard}/__init__.py +0 -0
  155. {skillware-0.5.0/skills/wellness → skillware-0.5.2/skills/security/prompt_injection_firewall}/__init__.py +0 -0
  156. {skillware-0.5.0 → skillware-0.5.2}/skills/security/prompt_injection_firewall/card.json +0 -0
  157. {skillware-0.5.0 → skillware-0.5.2}/skills/security/prompt_injection_firewall/firewall.py +0 -0
  158. {skillware-0.5.0 → skillware-0.5.2}/skills/security/prompt_injection_firewall/instructions.md +0 -0
  159. {skillware-0.5.0 → skillware-0.5.2}/skills/security/prompt_injection_firewall/kb/confusables.json +0 -0
  160. {skillware-0.5.0 → skillware-0.5.2}/skills/security/prompt_injection_firewall/kb/injection_patterns.json +0 -0
  161. {skillware-0.5.0 → skillware-0.5.2}/skills/security/prompt_injection_firewall/manifest.yaml +0 -0
  162. {skillware-0.5.0 → skillware-0.5.2}/skills/security/prompt_injection_firewall/skill.py +0 -0
  163. {skillware-0.5.0 → skillware-0.5.2}/skills/security/prompt_injection_firewall/test_skill.py +0 -0
  164. {skillware-0.5.0/skillware → skillware-0.5.2/skills/wellness}/__init__.py +0 -0
  165. {skillware-0.5.0 → skillware-0.5.2}/skills/wellness/mental_coach/__init__.py +0 -0
  166. {skillware-0.5.0 → skillware-0.5.2}/skills/wellness/mental_coach/card.json +0 -0
  167. {skillware-0.5.0 → skillware-0.5.2}/skills/wellness/mental_coach/constraints.py +0 -0
  168. {skillware-0.5.0 → skillware-0.5.2}/skills/wellness/mental_coach/crisis_gate.py +0 -0
  169. {skillware-0.5.0 → skillware-0.5.2}/skills/wellness/mental_coach/instructions.md +0 -0
  170. {skillware-0.5.0 → skillware-0.5.2}/skills/wellness/mental_coach/kb/corpus.json +0 -0
  171. {skillware-0.5.0 → skillware-0.5.2}/skills/wellness/mental_coach/kb/crisis_resources.json +0 -0
  172. {skillware-0.5.0 → skillware-0.5.2}/skills/wellness/mental_coach/kb/hard_constraints.yaml +0 -0
  173. {skillware-0.5.0 → skillware-0.5.2}/skills/wellness/mental_coach/kb_provider.py +0 -0
  174. {skillware-0.5.0 → skillware-0.5.2}/skills/wellness/mental_coach/manifest.yaml +0 -0
  175. {skillware-0.5.0 → skillware-0.5.2}/skills/wellness/mental_coach/resources.py +0 -0
  176. {skillware-0.5.0 → skillware-0.5.2}/skills/wellness/mental_coach/skill.py +0 -0
  177. {skillware-0.5.0 → skillware-0.5.2}/skills/wellness/mental_coach/test_skill.py +0 -0
  178. {skillware-0.5.0/skillware/core → skillware-0.5.2/skillware}/__init__.py +0 -0
  179. {skillware-0.5.0 → skillware-0.5.2}/skillware/__main__.py +0 -0
  180. {skillware-0.5.0 → skillware-0.5.2}/skillware/core/base_skill.py +0 -0
  181. {skillware-0.5.0 → skillware-0.5.2}/skillware/core/discovery.py +0 -0
  182. {skillware-0.5.0 → skillware-0.5.2}/skillware/core/env.py +0 -0
  183. {skillware-0.5.0 → skillware-0.5.2}/skillware/core/extras.py +0 -0
  184. {skillware-0.5.0 → skillware-0.5.2}/skillware/core/loader.py +0 -0
  185. {skillware-0.5.0 → skillware-0.5.2}/skillware/core/ui_schema.py +0 -0
  186. {skillware-0.5.0 → skillware-0.5.2}/skillware/version_policy.py +0 -0
  187. {skillware-0.5.0 → skillware-0.5.2}/skillware.egg-info/dependency_links.txt +0 -0
  188. {skillware-0.5.0 → skillware-0.5.2}/skillware.egg-info/entry_points.txt +0 -0
  189. {skillware-0.5.0 → skillware-0.5.2}/skillware.egg-info/top_level.txt +0 -0
  190. {skillware-0.5.0 → skillware-0.5.2}/tests/test_card_ui_schema.py +0 -0
  191. {skillware-0.5.0 → skillware-0.5.2}/tests/test_discovery.py +0 -0
  192. {skillware-0.5.0 → skillware-0.5.2}/tests/test_extras_sync.py +0 -0
  193. {skillware-0.5.0 → skillware-0.5.2}/tests/test_loader.py +0 -0
  194. {skillware-0.5.0 → skillware-0.5.2}/tests/test_registry_identity.py +0 -0
  195. {skillware-0.5.0 → skillware-0.5.2}/tests/test_requirements_check.py +0 -0
  196. {skillware-0.5.0 → skillware-0.5.2}/tests/test_skill_issuer.py +0 -0
  197. {skillware-0.5.0 → skillware-0.5.2}/tests/test_ui_schema.py +0 -0
  198. {skillware-0.5.0 → skillware-0.5.2}/tests/test_validate_params.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: skillware
3
- Version: 0.5.0
3
+ Version: 0.5.2
4
4
  Summary: A framework for modular, self-contained AI skills.
5
5
  Author-email: ARPA Hellenic Logical Systems <skillware-os@arpacorp.net>
6
6
  License: MIT License
@@ -25,12 +25,23 @@ License: MIT License
25
25
  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
26
26
  SOFTWARE.
27
27
 
28
- Project-URL: Homepage, https://arpacorp.net
29
- Project-URL: Repository, https://github.com/arpahls/skillware
28
+ Project-URL: Homepage, https://skillware.site
29
+ Project-URL: Repository, https://github.com/ARPAHLS/skillware
30
+ Project-URL: Documentation, https://github.com/ARPAHLS/skillware/blob/main/docs/introduction.md
31
+ Project-URL: Issues, https://github.com/ARPAHLS/skillware/issues
32
+ Project-URL: Changelog, https://github.com/ARPAHLS/skillware/blob/main/CHANGELOG.md
30
33
  Project-URL: DOI, https://doi.org/10.5281/zenodo.21552745
31
- Classifier: Programming Language :: Python :: 3
34
+ Keywords: ai,agents,skills,llm,tools,framework,agent-tools,registry
35
+ Classifier: Development Status :: 4 - Beta
36
+ Classifier: Intended Audience :: Developers
32
37
  Classifier: License :: OSI Approved :: MIT License
33
38
  Classifier: Operating System :: OS Independent
39
+ Classifier: Programming Language :: Python :: 3
40
+ Classifier: Programming Language :: Python :: 3.10
41
+ Classifier: Programming Language :: Python :: 3.11
42
+ Classifier: Programming Language :: Python :: 3.12
43
+ Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
44
+ Classifier: Topic :: Software Development :: Libraries :: Python Modules
34
45
  Requires-Python: >=3.10
35
46
  Description-Content-Type: text/markdown
36
47
  License-File: LICENSE
@@ -100,6 +111,7 @@ Provides-Extra: office-pdf-form-filler
100
111
  Requires-Dist: pymupdf; extra == "office-pdf-form-filler"
101
112
  Requires-Dist: anthropic; extra == "office-pdf-form-filler"
102
113
  Provides-Extra: optimization-prompt-rewriter
114
+ Provides-Extra: security-deceptive-ui-guard
103
115
  Provides-Extra: security-prompt-injection-firewall
104
116
  Provides-Extra: wellness-mental-coach
105
117
  Requires-Dist: google-genai; extra == "wellness-mental-coach"
@@ -380,7 +392,7 @@ PyPI download counts show how often `skillware` is installed from the package in
380
392
 
381
393
  <a href="https://doi.org/10.5281/zenodo.21552745"><img src="https://img.shields.io/badge/DOI-10.5281%2Fzenodo.21552745-c7d2fe?style=flat-square" alt="DOI 10.5281/zenodo.21552745"></a>
382
394
 
383
- If you use Skillware in research or products, please cite it using [CITATION.cff](CITATION.cff) (GitHub **Cite this repository**) or the Zenodo **concept DOI** above. That DOI is stable across releases. For reproducibility, also record the **Skillware version** you used (PyPI or Git tag, for example `0.5.0`).
395
+ If you use Skillware in research or products, please cite it using [CITATION.cff](CITATION.cff) (GitHub **Cite this repository**) or the Zenodo **concept DOI** above. That DOI is stable across releases. For reproducibility, also record the **Skillware version** you used (PyPI or Git tag, for example `0.5.2`).
384
396
 
385
397
  ## Contact
386
398
 
@@ -263,7 +263,7 @@ PyPI download counts show how often `skillware` is installed from the package in
263
263
 
264
264
  <a href="https://doi.org/10.5281/zenodo.21552745"><img src="https://img.shields.io/badge/DOI-10.5281%2Fzenodo.21552745-c7d2fe?style=flat-square" alt="DOI 10.5281/zenodo.21552745"></a>
265
265
 
266
- If you use Skillware in research or products, please cite it using [CITATION.cff](CITATION.cff) (GitHub **Cite this repository**) or the Zenodo **concept DOI** above. That DOI is stable across releases. For reproducibility, also record the **Skillware version** you used (PyPI or Git tag, for example `0.5.0`).
266
+ If you use Skillware in research or products, please cite it using [CITATION.cff](CITATION.cff) (GitHub **Cite this repository**) or the Zenodo **concept DOI** above. That DOI is stable across releases. For reproducibility, also record the **Skillware version** you used (PyPI or Git tag, for example `0.5.2`).
267
267
 
268
268
  ## Contact
269
269
 
@@ -4,18 +4,24 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "skillware"
7
- version = "0.5.0"
7
+ version = "0.5.2"
8
8
  description = "A framework for modular, self-contained AI skills."
9
9
  readme = "README.md"
10
10
  authors = [
11
11
  { name = "ARPA Hellenic Logical Systems", email = "skillware-os@arpacorp.net" },
12
12
  ]
13
- urls = { "Homepage" = "https://arpacorp.net", "Repository" = "https://github.com/arpahls/skillware", "DOI" = "https://doi.org/10.5281/zenodo.21552745" }
14
13
  license = { file = "LICENSE" }
15
14
  classifiers = [
16
- "Programming Language :: Python :: 3",
15
+ "Development Status :: 4 - Beta",
16
+ "Intended Audience :: Developers",
17
17
  "License :: OSI Approved :: MIT License",
18
18
  "Operating System :: OS Independent",
19
+ "Programming Language :: Python :: 3",
20
+ "Programming Language :: Python :: 3.10",
21
+ "Programming Language :: Python :: 3.11",
22
+ "Programming Language :: Python :: 3.12",
23
+ "Topic :: Scientific/Engineering :: Artificial Intelligence",
24
+ "Topic :: Software Development :: Libraries :: Python Modules",
19
25
  ]
20
26
  dependencies = [
21
27
  "requests",
@@ -28,6 +34,16 @@ dependencies = [
28
34
  ]
29
35
  requires-python = ">=3.10"
30
36
 
37
+ keywords = ["ai", "agents", "skills", "llm", "tools", "framework", "agent-tools", "registry"]
38
+
39
+ [project.urls]
40
+ Homepage = "https://skillware.site"
41
+ Repository = "https://github.com/ARPAHLS/skillware"
42
+ Documentation = "https://github.com/ARPAHLS/skillware/blob/main/docs/introduction.md"
43
+ Issues = "https://github.com/ARPAHLS/skillware/issues"
44
+ Changelog = "https://github.com/ARPAHLS/skillware/blob/main/CHANGELOG.md"
45
+ DOI = "https://doi.org/10.5281/zenodo.21552745"
46
+
31
47
  [project.scripts]
32
48
  skillware = "skillware.cli:main"
33
49
 
@@ -135,6 +151,8 @@ office_pdf_form_filler = [
135
151
 
136
152
  optimization_prompt_rewriter = []
137
153
 
154
+ security_deceptive_ui_guard = []
155
+
138
156
  security_prompt_injection_firewall = []
139
157
 
140
158
  wellness_mental_coach = [
@@ -164,6 +182,7 @@ include = ["skillware*", "skills*"]
164
182
  # Non-Python skill assets (yaml, md, json, data/) ship via MANIFEST.in (graft skills)
165
183
  # and this wildcard. No per-skill entries needed when adding registry skills.
166
184
  [tool.setuptools.package-data]
185
+ skillware = ["branding/*"]
167
186
  skills = ["**/*"]
168
187
 
169
188
  [tool.pytest.ini_options]
@@ -81,8 +81,12 @@ intent_to_action:
81
81
  lookup: resolve_company
82
82
  look_up: resolve_company
83
83
  who_is: get_officers
84
+ director: get_officers
84
85
  directors: get_officers
86
+ officer: get_officers
85
87
  officers: get_officers
88
+ officer_name: get_officers
89
+ officer_names: get_officers
86
90
  board: get_officers
87
91
  management: get_officers
88
92
  leadership: get_officers
@@ -98,6 +102,10 @@ intent_to_action:
98
102
  filing: get_filing_history
99
103
  accounts: get_filing_history
100
104
  annual_return: get_filing_history
105
+ annual_report: get_filing_history
106
+ 10k: get_filing_history
107
+ 10_k: get_filing_history
108
+ financial_statements: get_filing_history
101
109
  documents: get_filing_history
102
110
  profile: get_company_profile
103
111
  details: get_company_profile
@@ -105,3 +113,6 @@ intent_to_action:
105
113
  information: get_company_profile
106
114
  status: get_company_profile
107
115
  registered: get_company_profile
116
+ secretary: get_officers
117
+ corporate_secretary: get_officers
118
+ beneficial_ownership: get_pscs
@@ -0,0 +1,85 @@
1
+ # UK Companies House Handler
2
+
3
+ You are using the `finance/uk_companies_house_handler` skill.
4
+
5
+ This skill wraps the UK Companies House REST API (`api.company-information.service.gov.uk`) with deterministic actions. It returns structured JSON envelopes (`ready`, `partial`, `needs_input`, `error`) — it does not parse conversational user text. **You** infer intent, choose actions, pass clean parameters (`query`, `company_number`, `role_hint`, `category`), handle disambiguation with the user, and render record lists in your reply.
6
+
7
+ `data/terminology_map.yaml` is a **reference lexicon** for UK/US/finance term equivalents and keyword hints; it is not a substitute for your reasoning. Prefer explicit parameters over relying on keyword routing alone.
8
+
9
+ ## When to use
10
+
11
+ Use this skill when the user:
12
+
13
+ - Asks about a UK company (England, Wales, Scotland, or Northern Ireland).
14
+ - Wants directors, officers, secretaries, PSCs, or filing history for a UK entity.
15
+ - Mentions Companies House or a UK company number (8 characters, e.g. `00445790`).
16
+ - Needs multi-step registry lookups that benefit from `run_pipeline` or composite actions.
17
+
18
+ ## UK terminology (present only when the user used non-UK terms)
19
+
20
+ | User may say | UK registry term | Typical action |
21
+ | :--- | :--- | :--- |
22
+ | CEO, president, chairman | Director | `get_officers` + optional `role_hint: "ceo"` |
23
+ | Owner, shareholder, beneficial owner | Person with Significant Control (PSC) | `get_pscs` |
24
+ | Secretary, corporate secretary | Secretary | `get_officers` |
25
+ | Annual report, 10-K, financials | Accounts / confirmation statement | `get_filing_history` (+ optional `category`) |
26
+ | Company, corporation, LLC | Ltd, PLC, LLP | `resolve_company` |
27
+
28
+ Only explain terminology when the user used informal or US-centric wording. Do not add disclaimers during disambiguation prompts.
29
+
30
+ ## Available actions
31
+
32
+ | Action | Purpose | Required params | Optional params |
33
+ | :--- | :--- | :--- | :--- |
34
+ | `resolve_company` | Search by name; ranked candidates | `query` (clean company name) | `limit` |
35
+ | `get_company_profile` | Full profile by number | `company_number` | |
36
+ | `get_officers` | Directors and secretaries | `company_number` | `active_only` (default **true**), `limit`, `role_hint`, `officer_filter` |
37
+ | `get_pscs` | Persons with significant control | `company_number` | `active_only` |
38
+ | `get_filing_history` | Filings (accounts, returns, etc.) | `company_number` | `category`, `limit` |
39
+ | `map_intent` | Suggest an action pipeline from keywords | `intent_keywords` and/or `entities` | `entities.company_query` when actions need a company |
40
+ | `run_pipeline` | Run ordered atomic steps; halt on `needs_input`/`error` | `steps` or resume via `context` | `company_number`, `pipeline`, `stop_on`, `context` |
41
+ | `resolve_and_get_officers` | Resolve + list officers in one call | `query` **or** `company_number` | `role_hint`, `active_only`, `limit`, `officer_filter` |
42
+ | `resolve_and_get_filings` | Resolve + list filings in one call | `query` **or** `company_number` | `category`, `limit` |
43
+
44
+ **Parameter hygiene:** Pass a **clean** company name in `query` / `entities.company_query` (e.g. `Barclays`, not `Who is the CEO of Barclays?`). Pass conversational role intent via `role_hint` (e.g. `"ceo"`, `"chairman"`). Strip trailing punctuation (`?`, `.`) yourself or rely on the skill's light normalization.
45
+
46
+ ## Playbook — disambiguation and multi-step queries
47
+
48
+ ### Example: "Who is the CEO of Barclays?"
49
+
50
+ 1. **Do not** pass the full sentence as `query`. Call `resolve_and_get_officers` with `query: "Barclays"`, `role_hint: "ceo"` (or `run_pipeline` / `map_intent` + pipeline if you prefer).
51
+ 2. If `status` is **`needs_input`**, present `candidates` (e.g. Barclays Bank PLC vs other Barclays entities) and ask the user to pick.
52
+ 3. After confirmation, call `get_officers` with the chosen `company_number` (and `role_hint` if still relevant), or resume `run_pipeline` with `company_number` + remaining `steps` / `context`.
53
+ 4. Answer the role question using UK director terminology when appropriate, then **render the full `officers[]` list** (name, role, appointed date).
54
+
55
+ ### Multi-intent queries
56
+
57
+ For combined asks (e.g. *"officers and filings for BP"*):
58
+
59
+ 1. Optionally call `map_intent` with `intent_keywords: "officers, filings"` and `entities: {"company_query": "BP"}` to obtain `suggested_pipeline`.
60
+ 2. Execute via `run_pipeline` with atomic steps only (`resolve_company`, `get_officers`, `get_filing_history`, …). Never nest composites inside `run_pipeline`.
61
+ 3. On `needs_input`, pause, disambiguate, then resume with `company_number` and updated `context` / `pipeline`.
62
+
63
+ ### Single-intent shortcuts
64
+
65
+ - Officers only: `resolve_and_get_officers` with clean `query` + optional `role_hint`.
66
+ - Filings only: `resolve_and_get_filings` with clean `query` + optional `category`.
67
+
68
+ ## Understanding responses
69
+
70
+ | Status | Meaning |
71
+ | :--- | :--- |
72
+ | `ready` | Complete result — present data clearly. |
73
+ | `partial` | Preview (default limit 10 officers or filings). **Always list returned records** and state total counts from the envelope / `agent_hint`. |
74
+ | `needs_input` | Ambiguous search or missing company name for pipeline — use `candidates` or `agent_hint`. |
75
+ | `error` | Check `error_code` and `message`. Use `agent_hint` for retry guidance (`rate_limited`, `timeout`, `connection_error`). |
76
+
77
+ Every response includes `fetched_at`, `source`, and usually `context`. Pipeline/composite responses may include `pipeline: {"completed_steps": N, "total_steps": M}`.
78
+
79
+ Common `error_code` values: `not_found`, `no_results`, `rate_limited`, `timeout`, `connection_error`, `missing_query`, `missing_company_number`.
80
+
81
+ ## Limitations
82
+
83
+ - Read-only public registry data; no document downloads or filing submission (later v2 phases).
84
+ - Rate limit: 600 requests per 5 minutes per API key.
85
+ - Not legal or accounting advice — cite `company_number` and `fetched_at` when presenting data.
@@ -0,0 +1,140 @@
1
+ name: finance/uk_companies_house_handler
2
+ version: 1.2.0
3
+ description: |
4
+ Deterministic UK Companies House API handler for agents. Provides structured
5
+ operations for company search, profile lookup, officer and PSC listing, filing
6
+ history, pipeline orchestration, and intent-to-operation mapping with UK corporate
7
+ terminology translation. Returns status-based responses (ready, partial,
8
+ needs_input, error) with disambiguation support. The agent owns natural-language
9
+ dialogue; the skill returns structured candidates and next actions.
10
+ short_description: "UK Companies House search, officers, PSC, filings, and pipeline orchestration via structured actions."
11
+ issuer:
12
+ name: Areen Agrawal
13
+ email: agrawalareen09@gmail.com
14
+ github: Areen-09
15
+ org: ARPAHLS
16
+ parameters:
17
+ type: object
18
+ properties:
19
+ action:
20
+ type: string
21
+ description: >
22
+ The operation to perform. One of: resolve_company, get_company_profile,
23
+ get_officers, get_pscs, get_filing_history, map_intent, run_pipeline,
24
+ resolve_and_get_officers, resolve_and_get_filings.
25
+ enum:
26
+ - resolve_company
27
+ - get_company_profile
28
+ - get_officers
29
+ - get_pscs
30
+ - get_filing_history
31
+ - map_intent
32
+ - run_pipeline
33
+ - resolve_and_get_officers
34
+ - resolve_and_get_filings
35
+ query:
36
+ type: string
37
+ description: "Company name or partial name for search (resolve_company)."
38
+ company_query:
39
+ type: string
40
+ description: "Company name query for composite actions (resolve_and_get_officers, resolve_and_get_filings)."
41
+ company_number:
42
+ type: string
43
+ description: "8-character UK company number (required for profile/officers/pscs/filing)."
44
+ active_only:
45
+ type: boolean
46
+ description: "Filter to current/active records only. Default true for get_officers."
47
+ limit:
48
+ type: integer
49
+ description: "Max results to return (resolve_company). Default 5."
50
+ category:
51
+ type: string
52
+ description: "Filing category filter (get_filing_history, resolve_and_get_filings)."
53
+ officer_filter:
54
+ type: string
55
+ description: "Name or filter term for officers."
56
+ role_hint:
57
+ type: string
58
+ description: "Requested role or title hint (e.g. 'ceo', 'cfo', 'chairman') for officers lookup and UK terminology note."
59
+ intent_keywords:
60
+ type: string
61
+ description: "Comma-separated keywords from user intent for map_intent action."
62
+ entities:
63
+ type: object
64
+ description: "Extracted entities for map_intent (e.g. company_query, role)."
65
+ steps:
66
+ type: array
67
+ description: "Ordered list of step objects with action and params to execute sequentially (run_pipeline)."
68
+ items:
69
+ type: object
70
+ properties:
71
+ action:
72
+ type: string
73
+ params:
74
+ type: object
75
+ required:
76
+ - action
77
+ stop_on:
78
+ type: array
79
+ description: "List of status strings on which run_pipeline should pause/halt execution. Default: ['needs_input', 'error']."
80
+ items:
81
+ type: string
82
+ context:
83
+ type: object
84
+ description: "State carried over from prior skill turns (e.g. company_number, company_name)."
85
+ pipeline:
86
+ type: object
87
+ description: "State of an executing multi-step pipeline (e.g. completed_steps, total_steps) to carry forward."
88
+ required:
89
+ - action
90
+ outputs:
91
+ status:
92
+ type: string
93
+ description: "Envelope status: ready, partial, needs_input, or error."
94
+ source:
95
+ type: string
96
+ description: "Data provenance (typically companies_house_api)."
97
+ fetched_at:
98
+ type: string
99
+ description: "UTC ISO timestamp when the response was built."
100
+ context:
101
+ type: object
102
+ description: "Session state to pass on the next call (company_number, role_hint, next_actions, pipeline)."
103
+ pipeline:
104
+ type: object
105
+ description: "Multi-step progress when using run_pipeline or composite actions."
106
+ agent_hint:
107
+ type: string
108
+ description: "Optional guidance for the host agent (disambiguation, partial previews, retries)."
109
+ company_number:
110
+ type: string
111
+ description: "Resolved 8-character company number when applicable."
112
+ company_name:
113
+ type: string
114
+ description: "Registered company name when applicable."
115
+ officers:
116
+ type: array
117
+ description: "Officer records from get_officers or merged pipeline output."
118
+ filings:
119
+ type: array
120
+ description: "Filing records from get_filing_history or merged pipeline output."
121
+ suggested_pipeline:
122
+ type: array
123
+ description: "Ordered steps suggested by map_intent."
124
+ terminology_map:
125
+ type: object
126
+ description: "Keyword-to-UK-registry translations from map_intent."
127
+ constitution: |
128
+ 1. Use only publicly available Companies House data.
129
+ 2. Require COMPANIES_HOUSE_API_KEY via environment; never hardcode or log the key.
130
+ 3. Do not cache personal data (officer names, addresses) beyond the current request.
131
+ 4. Always cite company_number and data timestamp (fetched_at) in responses.
132
+ 5. Never guess a company number; return ranked search hits when ambiguous.
133
+ 6. This skill provides company information, not legal or accounting advice.
134
+ 7. Do not submit filings or modify Companies House records.
135
+ env_vars:
136
+ COMPANIES_HOUSE_API_KEY:
137
+ description: "API key from the Companies House Developer Hub. Used as HTTP Basic username with empty password."
138
+ required: true
139
+ requirements:
140
+ - requests