Skip to content

Tags: OffskyLab/Orrery-AIToolKit

Tags

0.0.1-dev.5

Toggle 0.0.1-dev.5's commit message
Linux build fix, a real write-error fix, and the README catching up

Fixes the actual defect blocking a Linux release: StdioTransport didn't
import Glibc, so the package failed to build there at all. Adds a Linux CI
job so that regresses loudly next time instead of shipping silently.

PluginServer.serve now uses the throwing write instead of the one the file
forbids, so a write failure surfaces instead of being swallowed.

README catches up to what's actually shipped: documents that JSON-RPC
request ids are Int, not the full spec's id space, and splits the
"Direction: dispatch is a detail" section — the RPC transport, wire, and
forwarding proxy it describes shipped in 0.0.1-dev.4, so the "not
implemented" warning no longer applies to that part. The
directory-decomposition capability keeps its own, still accurate, warning.

0.0.1-dev.4

Toggle 0.0.1-dev.4's commit message
JSON-RPC layer: transport, client, plugin server, and a fake plugin

Adds the process boundary's protocol without changing AITool or AIToolRegistry.
A plugin author implements AITool and calls PluginServer.serve(tool:); the host
drives a JSONRPCConnection over any Transport.

The transport abstraction is what lets a spawned child become a socket later
without touching the protocol, and what lets most of the suite run without
spawning anything.

AIToolKitTestPlugin doubles as a conformance suite: a third-party author can
point the same tests at their own binary.

0.0.1-dev.3

Toggle 0.0.1-dev.3's commit message
[FIX] refuse an id that is not a single safe path segment

`register` already refused ids a host could not write down as a line.
It did not refuse ids a host cannot write down as a *path* — and the
path is this package's own doing: `AITool.configDirectoryName` defaults
to ".\(id)", so every id is joined onto a host's home directory.

So "a/b" became a nested path where one directory segment was expected,
"./../evil" became "../../evil" and escaped the home directory it was
joined onto, ".hidden" supplied a dot the default was about to add
again, and a NUL passed validation intact and then truncated the path
at the first POSIX call — creating a directory the id did not name.

Three further rules, each with its own `Reason` so a rejected third
party learns which one they broke: no path separator, no leading dot,
no control character. Whitespace stays checked first, since tab and
newline are control characters too and the whitespace reason is the
more useful of the two for the ids hosts are actually handed.

0.0.1-dev.2

Toggle 0.0.1-dev.2's commit message
0.0.1-dev.2 — register rejects ids a host cannot serialize

0.0.1-dev.1

Toggle 0.0.1-dev.1's commit message
0.0.1-dev.1 — AITool becomes a protocol; registry is verified Sendable

0.0.1-dev.0

Toggle 0.0.1-dev.0's commit message
First tagged interface: AITool + AIToolRegistry