@ringko-ai/rkh 0.2.1-rc → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +11 -5
- package/bin/ringko.mjs +18 -16
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -1,12 +1,18 @@
|
|
|
1
|
-
# RingKo
|
|
1
|
+
# RingKo Harness
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
RingKo is a provider-neutral agent harness. The `ringko` command offers two
|
|
4
|
+
interface styles: an interactive terminal UI (plain `ringko`, the default) and a
|
|
5
|
+
browser UI (`ringko serve`, which prints the URL to open). Both run the same tool
|
|
6
|
+
registry, the same approval gate and the same event-sourced session log.
|
|
7
|
+
|
|
8
|
+
`@ringko-ai/rkh` installs that command globally. The executable is a Bun bundle, so
|
|
9
|
+
Node.js 24+ **and** [Bun](https://bun.sh/) 1.2+ must be on `PATH` — Bun is not
|
|
10
|
+
optional.
|
|
6
11
|
|
|
7
12
|
```sh
|
|
8
13
|
npm install -g @ringko-ai/rkh
|
|
9
|
-
ringko
|
|
14
|
+
ringko # terminal interface (default)
|
|
15
|
+
ringko serve # local backend + browser interface, prints its URL
|
|
10
16
|
```
|
|
11
17
|
|
|
12
18
|
`ringko help` lists every command. Without a global install, `npx @ringko-ai/rkh tui`
|
package/bin/ringko.mjs
CHANGED
|
@@ -127854,7 +127854,7 @@ function resumeHint(sessionId, workspace, entry, windows = process.platform ===
|
|
|
127854
127854
|
const source = entry && /\.tsx?$/.test(entry) && !entry.includes("$bunfs") ? `bun ${quote(entry, windows)}` : cliCommand(entry);
|
|
127855
127855
|
return `
|
|
127856
127856
|
Resume this session with:
|
|
127857
|
-
${source}
|
|
127857
|
+
${source} --session ${quote(sessionId, windows)} --workspace ${quote(workspace, windows)}`;
|
|
127858
127858
|
}
|
|
127859
127859
|
|
|
127860
127860
|
// packages/tui/src/cli.ts
|
|
@@ -127952,20 +127952,20 @@ init_src3();
|
|
|
127952
127952
|
// packages/tui/src/provider.ts
|
|
127953
127953
|
init_loader();
|
|
127954
127954
|
// packages/tui/package.json
|
|
127955
|
-
var version2 = "0.
|
|
127955
|
+
var version2 = "0.3.0";
|
|
127956
127956
|
|
|
127957
127957
|
// packages/tui/src/cli.ts
|
|
127958
127958
|
var VERSION8 = version2;
|
|
127959
|
-
var USAGE = `${cliCommand()} - RingKo agent harness
|
|
127959
|
+
var USAGE = `${cliCommand()} - RingKo agent harness
|
|
127960
127960
|
|
|
127961
127961
|
Usage:
|
|
127962
|
+
${cliCommand()} Interactive terminal UI (default)
|
|
127962
127963
|
${cliCommand()} <command> [options]
|
|
127963
127964
|
|
|
127964
127965
|
Commands:
|
|
127965
127966
|
run <prompt> Run the agent
|
|
127966
127967
|
loop <prompt> Repeat a prompt until --completion-promise or --max-iterations
|
|
127967
|
-
|
|
127968
|
-
serve Start the shared HTTP backend (TUI starts one automatically)
|
|
127968
|
+
serve Start the local backend and browser UI
|
|
127969
127969
|
service start|status|stop Manage the shared backend of this workspace
|
|
127970
127970
|
tools List the registered tools
|
|
127971
127971
|
skills List installed skills (~/.ringko/skills, ~/.agents/skills)
|
|
@@ -127989,11 +127989,11 @@ Commands:
|
|
|
127989
127989
|
help Show this help
|
|
127990
127990
|
|
|
127991
127991
|
Options:
|
|
127992
|
-
--config <path>
|
|
127992
|
+
--config <path> Explicit config file (default: ~/.ringko/settings.local.json + provider.json)
|
|
127993
127993
|
--provider <name> Override the configured provider (default: echo)
|
|
127994
127994
|
--model <id> Override the configured model id
|
|
127995
127995
|
--resume, -c Continue the most recent session
|
|
127996
|
-
-s, --session [id] Continue a session; omit the id for
|
|
127996
|
+
-s, --session [id] Continue a session; omit the id for the session picker
|
|
127997
127997
|
--workspace <dir> Workspace root for file tools (default: current directory)
|
|
127998
127998
|
--server <url> Connect to an existing local backend (or RINGKO_SERVER)
|
|
127999
127999
|
--port <number> (serve) HTTP port (default: 8787)
|
|
@@ -128010,8 +128010,11 @@ function denyApprovals(io) {
|
|
|
128010
128010
|
return false;
|
|
128011
128011
|
};
|
|
128012
128012
|
}
|
|
128013
|
+
var DASH_COMMANDS = new Set(["--help", "-h", "--version", "-v"]);
|
|
128013
128014
|
function parseArgs(argv) {
|
|
128014
|
-
const [
|
|
128015
|
+
const [first, ...rest] = argv;
|
|
128016
|
+
const command = first !== undefined && (!first.startsWith("-") || DASH_COMMANDS.has(first)) ? first : undefined;
|
|
128017
|
+
const args = command === undefined ? argv : rest;
|
|
128015
128018
|
const positionals = [];
|
|
128016
128019
|
let config;
|
|
128017
128020
|
let provider;
|
|
@@ -128023,14 +128026,14 @@ function parseArgs(argv) {
|
|
|
128023
128026
|
let server;
|
|
128024
128027
|
let port;
|
|
128025
128028
|
let shared;
|
|
128026
|
-
for (let i = 0;i <
|
|
128027
|
-
const arg =
|
|
128029
|
+
for (let i = 0;i < args.length; i += 1) {
|
|
128030
|
+
const arg = args[i];
|
|
128028
128031
|
if (arg === "--shared") {
|
|
128029
128032
|
shared = true;
|
|
128030
128033
|
continue;
|
|
128031
128034
|
}
|
|
128032
128035
|
if (arg === "--server" || arg === "--port") {
|
|
128033
|
-
const value =
|
|
128036
|
+
const value = args[++i];
|
|
128034
128037
|
if (!value || value.startsWith("--"))
|
|
128035
128038
|
throw new TypeError(`Missing value for ${arg}.`);
|
|
128036
128039
|
if (arg === "--server")
|
|
@@ -128047,7 +128050,7 @@ function parseArgs(argv) {
|
|
|
128047
128050
|
continue;
|
|
128048
128051
|
}
|
|
128049
128052
|
if (arg === "-s" || arg === "--session") {
|
|
128050
|
-
const value =
|
|
128053
|
+
const value = args[i + 1];
|
|
128051
128054
|
if (value !== undefined && !value.startsWith("-")) {
|
|
128052
128055
|
session = value;
|
|
128053
128056
|
i += 1;
|
|
@@ -128057,7 +128060,7 @@ function parseArgs(argv) {
|
|
|
128057
128060
|
continue;
|
|
128058
128061
|
}
|
|
128059
128062
|
if (arg === "--config" || arg === "--provider" || arg === "--model" || arg === "--workspace") {
|
|
128060
|
-
const value =
|
|
128063
|
+
const value = args[i + 1];
|
|
128061
128064
|
if (value === undefined)
|
|
128062
128065
|
throw new TypeError(`Missing value for ${arg}.`);
|
|
128063
128066
|
if (arg === "--config")
|
|
@@ -128214,7 +128217,7 @@ async function loopCommand(parsed, io) {
|
|
|
128214
128217
|
}
|
|
128215
128218
|
async function tuiCommand(parsed, io) {
|
|
128216
128219
|
if (!process.stdout.isTTY) {
|
|
128217
|
-
io.err(`${cliCommand()}
|
|
128220
|
+
io.err(`${cliCommand()} requires an interactive terminal; use ${cliCommand()} serve for the browser UI.`);
|
|
128218
128221
|
return 1;
|
|
128219
128222
|
}
|
|
128220
128223
|
const config = readConfig(parsed, io);
|
|
@@ -128619,6 +128622,7 @@ async function runCli(argv, io) {
|
|
|
128619
128622
|
}
|
|
128620
128623
|
switch (parsed.command) {
|
|
128621
128624
|
case undefined:
|
|
128625
|
+
return tuiCommand(parsed, io);
|
|
128622
128626
|
case "help":
|
|
128623
128627
|
case "--help":
|
|
128624
128628
|
case "-h":
|
|
@@ -128656,8 +128660,6 @@ async function runCli(argv, io) {
|
|
|
128656
128660
|
return modelsCommand(parsed, io);
|
|
128657
128661
|
case "auth":
|
|
128658
128662
|
return authCommand(parsed, io);
|
|
128659
|
-
case "tui":
|
|
128660
|
-
return tuiCommand(parsed, io);
|
|
128661
128663
|
case "serve":
|
|
128662
128664
|
return serveCommand(parsed, io);
|
|
128663
128665
|
case "service": {
|
package/package.json
CHANGED