mirror of
https://github.com/aljazceru/opencode.git
synced 2025-12-21 09:44:21 +01:00
toolz
This commit is contained in:
@@ -1,9 +1,10 @@
|
||||
import { App } from "./app";
|
||||
import { Server } from "./server/server";
|
||||
import { Cli, Command, runExit } from "clipanion";
|
||||
import { Cli, Command, Option, runExit } from "clipanion";
|
||||
import fs from "fs/promises";
|
||||
import path from "path";
|
||||
import { Bus } from "./bus";
|
||||
import { Session } from "./session/session";
|
||||
|
||||
const cli = new Cli({
|
||||
binaryLabel: `opencode`,
|
||||
@@ -12,7 +13,7 @@ const cli = new Cli({
|
||||
});
|
||||
|
||||
cli.register(
|
||||
class Run extends Command {
|
||||
class extends Command {
|
||||
async execute() {
|
||||
const app = await App.create({
|
||||
directory: process.cwd(),
|
||||
@@ -25,7 +26,7 @@ cli.register(
|
||||
},
|
||||
);
|
||||
cli.register(
|
||||
class Generate extends Command {
|
||||
class extends Command {
|
||||
static paths = [["generate"]];
|
||||
async execute() {
|
||||
const specs = await Server.openapi();
|
||||
@@ -43,5 +44,41 @@ cli.register(
|
||||
}
|
||||
},
|
||||
);
|
||||
|
||||
cli.register(
|
||||
class extends Command {
|
||||
static paths = [["run"]];
|
||||
message = Option.Rest();
|
||||
|
||||
async execute() {
|
||||
const app = await App.create({
|
||||
directory: process.cwd(),
|
||||
});
|
||||
|
||||
await App.provide(app, async () => {
|
||||
console.log("Thinking...");
|
||||
const session = await Session.create();
|
||||
const result = await Session.chat(session.id, {
|
||||
type: "text",
|
||||
text: this.message.join(" "),
|
||||
});
|
||||
for (const part of result.parts) {
|
||||
if (part.type === "text") {
|
||||
console.log("opencode:", part.text);
|
||||
}
|
||||
if (part.type === "tool-invocation") {
|
||||
console.log(
|
||||
"tool:",
|
||||
part.toolInvocation.toolName,
|
||||
part.toolInvocation.args,
|
||||
);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
process.exit(0);
|
||||
}
|
||||
},
|
||||
);
|
||||
const [_bun, _app, ...args] = process.argv;
|
||||
cli.runExit(args);
|
||||
|
||||
Reference in New Issue
Block a user