Skip to main content

senteniel-core-fks (Python)

senteniel-core-fks is the library-first Sentinel package:

  • no required port
  • no required HTTP server
  • pluggable MCP/tool backends
  • pluggable orchestrators
  • pluggable audit sinks

The existing SentinelClient (GraphQL remote client) is still available. Both imports are supported:

  • from sentinel_core import ... (preferred)
  • from sentinel_sdk import ... (backward compatible)

Install (editable)

pip install -e sdk

Install from PyPI:

pip install senteniel-core-fks

Published package name: senteniel-core-fks.

Local Library Usage (No Server)

from sentinel_core import (
    SentinelEngine,
    StaticToolBackend,
    InMemoryAuditSink,
    make_policy_engine_from_dict,
)

backend = StaticToolBackend(
    {
        "openbnb_airbnb.airbnb_search": lambda args: {"ok": True, "args": args},
    }
)

policy = make_policy_engine_from_dict(
    {
        "openbnb_airbnb.": {
            "decision": "ALLOW",
            "risk": 0.0,
            "reason": "Airbnb read tools allowed",
        }
    }
)

audit = InMemoryAuditSink()
engine = SentinelEngine(tool_backend=backend, policy_engine=policy, audit_sinks=[audit])
engine.sync_tools()

decision = engine.propose_tool_call(
    "openbnb_airbnb.airbnb_search",
    {"location": "Accra"},
)
print(decision)
print(audit.events[-1])

Audit Sinks

  • InMemoryAuditSink: captures events in memory (events list).
  • JsonlAuditSink: appends one JSON event per line to a file.
  • HttpAuditSink: sends events to an external endpoint.

Orchestrator Plugin Example

from sentinel_core import SentinelEngine, ExplicitToolCallOrchestrator, StaticToolBackend

backend = StaticToolBackend({"demo.echo": lambda args: args})
engine = SentinelEngine(tool_backend=backend, allow_unknown_tools=True)
engine.register_orchestrator(ExplicitToolCallOrchestrator())
engine.sync_tools()

result = engine.run("explicit", 'demo.echo {"msg":"hello"}')
print(result)

Remote GraphQL Client (Optional)

from sentinel_core import SentinelClient

client = SentinelClient("http://localhost:8000/graphql")
result = client.propose_tool_call("fs.list_dir", {"path": "/sandbox"})
print(result)

Metadata

Release files for senteniel-core-fks 0.0.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for senteniel-core-fks 0.0.2
File Size Uploaded Provenance
senteniel_core_fks-0.0.2.tar.gz 8.3 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for senteniel-core-fks 0.0.2
File Interpreter ABI Platform
senteniel_core_fks-0.0.2-py3-none-any.whl Python 3 none any Details

Total release size: 18.4 kB

Release files / senteniel_core_fks-0.0.2.tar.gz

Download URL senteniel_core_fks-0.0.2.tar.gz
Size 8.3 kB
Tags Source
SHA-256 checksum
How to use checksums
58647678be1b8d95cb8c6710db0e03f0c0d8c6d701da0b959ebd090e183b859e
BLAKE2b-256 checksum
How to use checksums
b85c72b1316bba3f5284c1aef764eeb48545438730e9d1b19a22c41c00ef5872
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.14

Release files / senteniel_core_fks-0.0.2-py3-none-any.whl

Download URL senteniel_core_fks-0.0.2-py3-none-any.whl
Size 10.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
9a07fb0ff7a4223574b15ca6c1f4273f37d6ba9ada4ee4e1a586a53282e3fcbf
BLAKE2b-256 checksum
How to use checksums
82b1bc5d6bd0789ba53db2fbdaa52b6de5c6b0e0e27389972df8a120bd2c9099
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.14

Security for senteniel-core-fks 0.0.2

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.0.2 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page