feat: add redmine-cli containerized CLI tool

Merge the redmine-cli work from the EnableAI repo into KNEL-AIMiddleware as the
canonical home for AI middleware. This is a standalone CLI (python-redmine 2.5.0)
that lists, shows, creates, updates, and closes Redmine issues via docker run.
Complements the existing mcp-redmine MCP server (protocol-native) with a
direct-invocation tool for interactive use.

Verified end-to-end against projects.knownelement.com: whoami, projects,
statuses, list, show, create, update, and close all tested successfully.

Also records host-cleanliness conventions (docker/tea only on host; custom
images to Gitea registry) in AGENTS.md, and adds a CLI Tools section to
STATUS.md.
This commit is contained in:
2026-07-30 12:09:44 -05:00
parent 280ebc2e67
commit b69e70e0a1
8 changed files with 549 additions and 0 deletions
+26
View File
@@ -1898,3 +1898,29 @@ Now has 3 working MCP servers:
When npm package exists and works better than source build, prefer npm package installation for reliability and simplicity.
---
## 2026-07-30 — Merged redmine-cli from EnableAI repo
**Context**: The EnableAI repo (`/home/reachableceo/projects/EnableAI`) was a
meta-project for enabling AI access to SaaS systems. Its first deliverable was a
containerized Redmine CLI. That work is now merged into KNEL-AIMiddleware, which
is the canonical home for all AI middleware going forward.
**What was merged**:
- `redmine-cli/` — a self-contained Python CLI (python-redmine 2.5.0) that
lists, shows, creates, updates, and closes Redmine issues. Built as a Docker
image (`kneldevstack-aimiddleware-redmine-cli`), verified end-to-end against
the live Redmine at `projects.knownelement.com` (whoami, list, show, create,
update, close all tested successfully).
**Relationship to existing mcp-redmine**:
- `mcp-redmine` (dockerfiles/mcp-redmine) is the upstream runekaagaard MCP
server — a protocol-native tool provider for OpenWebUI/Crush via MCP stdio.
- `redmine-cli` is a complementary standalone CLI for direct invocation from
the shell (useful when working interactively in Crush). Both share the same
`REDMINE_URL` / `REDMINE_API_KEY` environment variables.
**Host-cleanliness rule established**: The host stays clean — only `docker` and
`tea` commands run on the host; everything else is containerized. Custom images
are published to the Gitea container registry at
`git.knownelement.com/reachableceo/<image>`.