FlowDesk advisory selection tool for Omnigent.
Project description
FlowDesk Omnigent Tool
Experimental Omnigent integration package for FlowDesk advisory agent/model selection.
This package implements the experimental Omnigent selection path from docs/omnigent/OMNIGENT_DEVELOPMENT_DESIGN_OPTIONS.md:
- local Python function tool only;
- advisory selection only;
- no Omnigent dispatch calls;
- no provider fallback/retry authority;
- no credential/token file reads;
- optional local debug JSONL only when explicitly requested by the caller.
- post-run trace verification from Omnigent history/tool-call events;
- optional fixture-level function policy guard for selector-provenance and binding consistency.
Install into an Omnigent venv from PyPI:
uv pip install --python /path/to/omnigent/.venv/bin/python flowdesk-omnigent-tool
Development install from a FlowDesk checkout:
uv pip install --python /path/to/omnigent/.venv/bin/python -e packages/omnigent-tool
Release preflight from the FlowDesk repository:
npm run release:omnigent-tool
Publishing is explicit:
npm run release:omnigent-tool -- --test-pypi
npm run release:omnigent-tool -- --publish
GitHub Actions Trusted Publishing is available through .github/workflows/publish-omnigent-tool.yml. Configure PyPI with workflow filename publish-omnigent-tool.yml and environment pypi; configure TestPyPI with environment testpypi if you want a TestPyPI dry run.
Function path for Omnigent config:
flowdesk_omnigent.selection.select_agent_model
The selector accepts optional provider_usage or provider_health snapshots. Exhausted, critical, stale, blocked, unavailable, non-dispatchable, or 0%-remaining provider rows are skipped when another allowed provider can satisfy the request. If every allowed provider is unavailable, the selector returns selection_status=blocked with provider_usage_unavailable.
Trace verifier import path:
flowdesk_omnigent.trace_verifier.verify_selection_dispatch_trace
Trace adapter import path:
flowdesk_omnigent.trace_adapter.normalize_omnigent_trace_events
Minimal adapter/verifier flow:
from flowdesk_omnigent.trace_adapter import normalize_omnigent_trace_events
from flowdesk_omnigent.trace_verifier import verify_selection_dispatch_trace
normalized = normalize_omnigent_trace_events(history_items)
verification = verify_selection_dispatch_trace(normalized["events"])
The adapter returns redaction-safe normalized events only. It does not preserve raw prompts, full tool arguments, full tool outputs, provider payloads, or credentials.
Optional MCP stdio server:
flowdesk-omnigent-mcp
Omnigent MCP config after PyPI install:
tools:
flowdesk:
type: mcp
command: flowdesk-omnigent-mcp
Ensure the Omnigent server process inherits a PATH containing the Omnigent venv bin directory, for example:
export PATH="/path/to/omnigent/.venv/bin:$PATH"
The MCP server exposes only flowdesk_select_agent_model. It is selection-only and does not expose Omnigent dispatch, fallback, retry, write/apply, or provider-switch tools.
Optional Omnigent function policy guard:
guardrails:
policies:
flowdesk_selection_dispatch_guard:
type: function
on: [tool_call, tool_result]
function: flowdesk_omnigent.policies.omnigent_selection_dispatch_guard
The guard records FlowDesk selector calls in Omnigent policy state and, when Omnigent emits a selector tool_result, records exact selector output provenance. Guarded sys_session_send calls must match a recorded task/agent/harness/model binding and must not use expired selection records. This remains fixture-level policy enforcement only; it does not grant provider fallback, retry, write/apply, hard-chat/noReply, credential, or upstream Omnigent core-hook authority.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file flowdesk_omnigent_tool-0.1.1.tar.gz.
File metadata
- Download URL: flowdesk_omnigent_tool-0.1.1.tar.gz
- Upload date:
- Size: 18.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
589fcb47eaae7e60958e1ffea9b9221ec83266b8c4d4422eb00f9525247810c3
|
|
| MD5 |
14bd378702a5efe72bbbcef65c21f37d
|
|
| BLAKE2b-256 |
d3eed29d9ce8edb126952d0a5d334ffd36d3532fa1f4562071b28460c3b1dfa6
|
Provenance
The following attestation bundles were made for flowdesk_omnigent_tool-0.1.1.tar.gz:
Publisher:
publish-omnigent-tool.yml on astasdf1/flowdesk
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
flowdesk_omnigent_tool-0.1.1.tar.gz -
Subject digest:
589fcb47eaae7e60958e1ffea9b9221ec83266b8c4d4422eb00f9525247810c3 - Sigstore transparency entry: 1995583136
- Sigstore integration time:
-
Permalink:
astasdf1/flowdesk@adf55de33ab8e44c83d03dfa7c2ccbab69887534 -
Branch / Tag:
refs/tags/omnigent-tool-v0.1.1 - Owner: https://github.com/astasdf1
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-omnigent-tool.yml@adf55de33ab8e44c83d03dfa7c2ccbab69887534 -
Trigger Event:
push
-
Statement type:
File details
Details for the file flowdesk_omnigent_tool-0.1.1-py3-none-any.whl.
File metadata
- Download URL: flowdesk_omnigent_tool-0.1.1-py3-none-any.whl
- Upload date:
- Size: 16.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1962d18c8cedbc6e91f2dc71fb5adacbad7682cd473c00faed3f29337f0c1098
|
|
| MD5 |
b18977ebbce252879d58c1de0f714c0e
|
|
| BLAKE2b-256 |
6ad2d14a78a99b4895e53a210195d87aeaa217436456dfc0a5e8716dbdd1d234
|
Provenance
The following attestation bundles were made for flowdesk_omnigent_tool-0.1.1-py3-none-any.whl:
Publisher:
publish-omnigent-tool.yml on astasdf1/flowdesk
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
flowdesk_omnigent_tool-0.1.1-py3-none-any.whl -
Subject digest:
1962d18c8cedbc6e91f2dc71fb5adacbad7682cd473c00faed3f29337f0c1098 - Sigstore transparency entry: 1995583234
- Sigstore integration time:
-
Permalink:
astasdf1/flowdesk@adf55de33ab8e44c83d03dfa7c2ccbab69887534 -
Branch / Tag:
refs/tags/omnigent-tool-v0.1.1 - Owner: https://github.com/astasdf1
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-omnigent-tool.yml@adf55de33ab8e44c83d03dfa7c2ccbab69887534 -
Trigger Event:
push
-
Statement type: