Metadata-Version: 2.1
Name: hcli_hai
Version: 4.0.0
Summary: HCLI hai is a python package wrapper that contains an HCLI sample application (hai); hai is an HCLI for interacting with Ollama (remote or local), xAI, or OpenAI service provider models via terminal input and output streams.
Author-email: Jeff Michaud <cometaj2@proton.me>
License: Copyright (c) 2017 Jeff Michaud
        
        Permission is hereby granted, free of charge, to any person obtaining a copy of
        this software and associated documentation files (the "Software"), to deal in
        the Software without restriction, including without limitation the rights to
        use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
        of the Software, and to permit persons to whom the Software is furnished to do
        so, subject to the following conditions:
        
        The above copyright notice and this permission notice shall be included in all
        copies or substantial portions of the Software.
        
        THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
        AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
        OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
        SOFTWARE.
        
Project-URL: Homepage, https://github.com/cometaj2/hcli_hai
Keywords: ai,llm,cli,client,server,connector,hypermedia,rest,generic,development
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Topic :: Software Development
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Description-Content-Type: text/x-rst
License-File: LICENSE.txt
Requires-Dist: tiktoken==0.12.0
Requires-Dist: openai==3.6.0
Requires-Dist: piper-tts==1.7.0
Requires-Dist: sounddevice==0.5.6
Requires-Dist: pulsectl==24.12.0
Requires-Dist: numpy==2.4.4
Requires-Dist: bashlex==0.18
Requires-Dist: huckle<6.0.0,>=5.7.0
Requires-Dist: hcli_problem_details<1.0.0,>=0.2.0
Requires-Dist: hcli_core<5.0.0,>=4.0.0

|pypi| |build status| |pyver|

HCLI hai
========

HCLI hai is a python package wrapper that contains an HCLI sample application (hai); hai is an HCLI for interacting with Ollama (remote or local), xAI, or OpenAI models via terminal input and output streams.

----

HCLI hai wraps hai (an HCLI) and is intended to be used with an HCLI Client [1] as presented via an HCLI Connector [2].

You can find out more about HCLI on hcli.io [3]

[1] https://github.com/cometaj2/huckle

[2] https://github.com/cometaj2/hcli_core

[3] http://hcli.io

Installation
------------

HCLI hai requires a supported version of Python and pip.

You'll need an HCLI Connector to run hai. For example, you can use HCLI Core (https://github.com/cometaj2/hcli_core), a WSGI server such as Green Unicorn (https://gunicorn.org/), and an HCLI Client like Huckle (https://github.com/cometaj2/huckle).


.. code-block:: console

    pip install hcli-hai
    pip install hcli-core
    pip install huckle
    pip install gunicorn
    hcli_core cli install `hcli_hai path`
    hcli_core cli run hai | bash

Usage
-----

Open a different shell window.

Setup the huckle env eval in your .bash_profile (or other bash configuration) to avoid having to execute eval everytime you want to invoke HCLIs by name (e.g. hai).

Note that no CLI is actually installed by Huckle. Huckle reads the HCLI semantics exposed by the API via HCLI Connector and ends up behaving *like* the CLI it targets.


.. code-block:: console

    huckle cli install http://127.0.0.1:8000
    eval $(huckle env)
    hai help

Versioning
----------

This project makes use of semantic versioning (http://semver.org) and may make use of the "devx",
"prealphax", "alphax" "betax", and "rcx" extensions where x is a number (e.g. 0.3.0-prealpha1)
on github.

Supports
--------

- Chatting via input/output streams (e.g. via pipes).
- .hai folder structure in a users's home directory to help track hai configuration and contexts.
- Creating, listing, deleting, and changing conversation contexts.
- Automatic title creation based on context
- Custom context naming to help organize contexts
- Behavior setting to allow for persistent chat behavior (e.g. the Do Anything Now (DAN) prompt).
- Conversation vibing via detailed plans and HCLI integration to allow for external tool use.
  - This allows for capabilities enhancements (e.g. web search, git repo interaction, terminal use, etc.).
- hcli-problem-details use to help relay RFC 9457 problem details back to the HCLI client.
- Assistant audio summary and commentary for the last received context response.

To Do
-----

- Add HAI_HOME environment variable support.
- Add individualized multiuser conversation context support.
- A memory layer for the the AI HCLI (hai).
    - Automatic context switching per NLP on received input stream.
    - Context blending to mary different contexts.
    - Automatic context compression to yield a more substantial memory footprint per context window.
- A shell mode for the AI HCLI (hai) to enable shell CLI execution per sought goal.
- Changing the vibing behavior should be made possible; it is currently locked in to HCLI integration and planning.
- Support multi-process and multi-context to allow for multiple parallel vibes or conversations without conflict.

Bugs
----

- Occasional empty response from summarizing assistant

.. |build status| image:: https://circleci.com/gh/cometaj2/hcli_hai.svg?style=shield
   :target: https://circleci.com/gh/cometaj2/hcli_hai
.. |pypi| image:: https://img.shields.io/pypi/v/hcli-hai?label=hcli-hai
   :target: https://pypi.org/project/hcli-hai
.. |pyver| image:: https://img.shields.io/pypi/pyversions/hcli-hai.svg
   :target: https://pypi.org/project/hcli-hai
