Files
docs/libs/hexa/site/mcp/modules/hexa.model.json
Vishesh 'ironeagle' Bangotra 0c25cbb19f feat: unify docs portal and MCP servers into one config-driven service
- add config.yml as single source of truth for collected repos/categories
- add collect.py CLI to pull lib/api/wiki site builds and mcp bundles from
  source repos and regenerate nginx.conf + _index/index.html
- port mcp runtime (main.py/core.py/config.py): nginx + health + FastMCP
  servers started from config.yml
- docker: python:3.13-slim + nginx, expose 8000-8006 + 9000 (html portal)
- drone: publish html (6007:9000) and MCP ports 8000-8006
- move mongo-ops docs to wiki/, add auth-server (api) and hexa (lib)
- refresh lib site builds (lib/ prefix) and collect mcp bundles
2026-09-11 15:14:51 +05:30

146 lines
5.6 KiB
JSON

{
"module": "hexa.model",
"content": {
"path": "hexa.model",
"docstring": "Shared neutral model for hexa port trees.\n\nAll utilities (``parse_yaml``, ``generate_abc``, ``parse_abc``,\n``generate_yaml``, ``check_matches``) serialize through this single model.\nIt is NOT tied to any sample — any port tree fits.",
"objects": {
"annotations": {
"name": "annotations",
"kind": "alias",
"path": "hexa.model.annotations",
"signature": "<bound method Alias.signature of Alias('annotations', '__future__.annotations')>",
"docstring": null
},
"dataclass": {
"name": "dataclass",
"kind": "alias",
"path": "hexa.model.dataclass",
"signature": "<bound method Alias.signature of Alias('dataclass', 'dataclasses.dataclass')>",
"docstring": null
},
"field": {
"name": "field",
"kind": "alias",
"path": "hexa.model.field",
"signature": "<bound method Alias.signature of Alias('field', 'dataclasses.field')>",
"docstring": null
},
"NestedConfig": {
"name": "NestedConfig",
"kind": "attribute",
"path": "hexa.model.NestedConfig",
"signature": null,
"docstring": null
},
"ConfigValue": {
"name": "ConfigValue",
"kind": "attribute",
"path": "hexa.model.ConfigValue",
"signature": null,
"docstring": null
},
"MethodSpec": {
"name": "MethodSpec",
"kind": "class",
"path": "hexa.model.MethodSpec",
"signature": "<bound method Class.signature of Class('MethodSpec', 19, 34)>",
"docstring": "Specification of a single abstract method.",
"members": {
"name": {
"name": "name",
"kind": "attribute",
"path": "hexa.model.MethodSpec.name",
"signature": null,
"docstring": null
},
"args": {
"name": "args",
"kind": "attribute",
"path": "hexa.model.MethodSpec.args",
"signature": null,
"docstring": null
},
"kwargs": {
"name": "kwargs",
"kind": "attribute",
"path": "hexa.model.MethodSpec.kwargs",
"signature": null,
"docstring": null
}
}
},
"PortNode": {
"name": "PortNode",
"kind": "class",
"path": "hexa.model.PortNode",
"signature": "<bound method Class.signature of Class('PortNode', 37, 149)>",
"docstring": "A node in the hexa port tree.\n\nParameters\n----------\nname : str\n Slot name, e.g. ``\"parser\"``, ``\"amount_balance\"``.\nkind : str\n One of ``\"leaf\"``, ``\"port\"``, or ``\"parent\"``.\n - ``\"leaf\"``: no children (e.g. ``NumberPort``)\n - ``\"port\"``: has children (e.g. ``TransactionParserPort``)\n - ``\"parent\"``: the root of the tree (e.g. ``ExtractionPipeline``)\nport_cls : str\n ABC class name that gives this port its shape, e.g.\n ``\"TransactionParserPort\"``. Every port has a concrete typed shape.\nattributes : dict[str, ConfigValue]\n Annotated attributes: ``name -> type_expr`` for scalars, or a nested\n ``dict`` of sub-attributes (a struct) for grouped/structured values.\nchildren : list[PortNode]\n Nested port slots.\nmethods : dict[str, MethodSpec]\n Abstract methods keyed by method name.",
"members": {
"name": {
"name": "name",
"kind": "attribute",
"path": "hexa.model.PortNode.name",
"signature": null,
"docstring": null
},
"port_cls": {
"name": "port_cls",
"kind": "attribute",
"path": "hexa.model.PortNode.port_cls",
"signature": null,
"docstring": null
},
"kind": {
"name": "kind",
"kind": "attribute",
"path": "hexa.model.PortNode.kind",
"signature": null,
"docstring": null
},
"attributes": {
"name": "attributes",
"kind": "attribute",
"path": "hexa.model.PortNode.attributes",
"signature": null,
"docstring": null
},
"children": {
"name": "children",
"kind": "attribute",
"path": "hexa.model.PortNode.children",
"signature": null,
"docstring": null
},
"methods": {
"name": "methods",
"kind": "attribute",
"path": "hexa.model.PortNode.methods",
"signature": null,
"docstring": null
},
"find": {
"name": "find",
"kind": "function",
"path": "hexa.model.PortNode.find",
"signature": "<bound method Function.signature of Function('find', 73, 78)>",
"docstring": "Find a direct child by slot name."
},
"walk": {
"name": "walk",
"kind": "function",
"path": "hexa.model.PortNode.walk",
"signature": "<bound method Function.signature of Function('walk', 80, 85)>",
"docstring": "Return all nodes in depth-first order (self first)."
},
"diff": {
"name": "diff",
"kind": "function",
"path": "hexa.model.PortNode.diff",
"signature": "<bound method Function.signature of Function('diff', 103, 149)>",
"docstring": "Return a list of human-readable difference strings.\n\nAn empty list means the trees are equal."
}
}
}
}
}
}