@struere/cli 0.2.7 → 0.2.9
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/dist/commands/deploy.js +6 -6
- package/dist/commands/deploy.js.map +1 -1
- package/dist/commands/dev.d.ts.map +1 -1
- package/dist/commands/dev.js +166 -267
- package/dist/commands/dev.js.map +1 -1
- package/dist/index.js +154 -259
- package/dist/utils/api.d.ts +33 -3
- package/dist/utils/api.d.ts.map +1 -1
- package/dist/utils/api.js.map +1 -1
- package/package.json +1 -1
package/dist/commands/dev.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dev.js","sourceRoot":"","sources":["../../src/commands/dev.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"dev.js","sourceRoot":"","sources":["../../src/commands/dev.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -905,7 +905,7 @@ import { Command as Command3 } from "commander";
|
|
|
905
905
|
import chalk3 from "chalk";
|
|
906
906
|
import ora3 from "ora";
|
|
907
907
|
import chokidar from "chokidar";
|
|
908
|
-
import { join as join7 } from "path";
|
|
908
|
+
import { join as join7, basename as basename2 } from "path";
|
|
909
909
|
|
|
910
910
|
// src/utils/config.ts
|
|
911
911
|
import { join as join5 } from "path";
|
|
@@ -976,20 +976,23 @@ async function loadAgent(cwd) {
|
|
|
976
976
|
}
|
|
977
977
|
|
|
978
978
|
// src/commands/dev.ts
|
|
979
|
-
var devCommand = new Command3("dev").description("
|
|
979
|
+
var devCommand = new Command3("dev").description("Sync agent to development environment").action(async () => {
|
|
980
980
|
const spinner = ora3();
|
|
981
981
|
const cwd = process.cwd();
|
|
982
982
|
console.log();
|
|
983
|
-
console.log(chalk3.bold("Struere Dev
|
|
983
|
+
console.log(chalk3.bold("Struere Dev"));
|
|
984
984
|
console.log();
|
|
985
|
+
let project = loadProject(cwd);
|
|
985
986
|
if (!hasProject(cwd)) {
|
|
986
987
|
console.log(chalk3.yellow("No struere.json found"));
|
|
987
988
|
console.log();
|
|
988
|
-
|
|
989
|
-
|
|
990
|
-
|
|
989
|
+
const setupResult = await interactiveSetup(cwd);
|
|
990
|
+
if (!setupResult) {
|
|
991
|
+
process.exit(0);
|
|
992
|
+
}
|
|
993
|
+
project = setupResult;
|
|
991
994
|
}
|
|
992
|
-
|
|
995
|
+
project = loadProject(cwd);
|
|
993
996
|
if (!project) {
|
|
994
997
|
console.log(chalk3.red("Failed to load struere.json"));
|
|
995
998
|
process.exit(1);
|
|
@@ -997,8 +1000,7 @@ var devCommand = new Command3("dev").description("Start development server with
|
|
|
997
1000
|
console.log(chalk3.gray("Agent:"), chalk3.cyan(project.agent.name));
|
|
998
1001
|
console.log();
|
|
999
1002
|
spinner.start("Loading configuration");
|
|
1000
|
-
|
|
1001
|
-
const port = parseInt(options.port) || config.port || 3000;
|
|
1003
|
+
await loadConfig(cwd);
|
|
1002
1004
|
spinner.succeed("Configuration loaded");
|
|
1003
1005
|
spinner.start("Loading agent");
|
|
1004
1006
|
let agent = await loadAgent(cwd);
|
|
@@ -1012,16 +1014,10 @@ var devCommand = new Command3("dev").description("Start development server with
|
|
|
1012
1014
|
console.log();
|
|
1013
1015
|
process.exit(1);
|
|
1014
1016
|
}
|
|
1015
|
-
await runCloudDev(agent, project, cwd, port, options, spinner);
|
|
1016
|
-
});
|
|
1017
|
-
async function runCloudDev(agent, project, cwd, port, options, spinner) {
|
|
1018
|
-
const credentials = loadCredentials();
|
|
1019
|
-
const apiKey = getApiKey();
|
|
1020
1017
|
spinner.start("Connecting to Struere Cloud");
|
|
1021
1018
|
const syncUrl = getSyncUrl();
|
|
1022
1019
|
const ws = new WebSocket(`${syncUrl}/v1/dev/sync`);
|
|
1023
1020
|
let cloudUrl = null;
|
|
1024
|
-
let sessionId = null;
|
|
1025
1021
|
let isConnected = false;
|
|
1026
1022
|
ws.onopen = () => {
|
|
1027
1023
|
ws.send(JSON.stringify({
|
|
@@ -1047,23 +1043,19 @@ async function runCloudDev(agent, project, cwd, port, options, spinner) {
|
|
|
1047
1043
|
case "synced":
|
|
1048
1044
|
isConnected = true;
|
|
1049
1045
|
cloudUrl = data.url || null;
|
|
1050
|
-
|
|
1051
|
-
|
|
1046
|
+
spinner.succeed("Synced to development");
|
|
1047
|
+
console.log();
|
|
1048
|
+
console.log(chalk3.green("Development URL:"), chalk3.cyan(cloudUrl));
|
|
1052
1049
|
console.log();
|
|
1053
|
-
console.log(chalk3.gray("
|
|
1054
|
-
console.log(chalk3.green("Agent running at"), chalk3.cyan(cloudUrl));
|
|
1055
|
-
console.log(chalk3.green("Local server at"), chalk3.cyan(`http://localhost:${port}`));
|
|
1050
|
+
console.log(chalk3.gray("Watching for changes... Press Ctrl+C to stop"));
|
|
1056
1051
|
console.log();
|
|
1057
|
-
spinner.start("Watching for changes");
|
|
1058
1052
|
break;
|
|
1059
1053
|
case "log":
|
|
1060
1054
|
const logColor = data.level === "error" ? chalk3.red : data.level === "warn" ? chalk3.yellow : data.level === "debug" ? chalk3.gray : chalk3.blue;
|
|
1061
|
-
spinner.stop();
|
|
1062
1055
|
console.log(logColor(`[${data.level}]`), data.message);
|
|
1063
|
-
spinner.start("Watching for changes");
|
|
1064
1056
|
break;
|
|
1065
1057
|
case "error":
|
|
1066
|
-
spinner.fail(`
|
|
1058
|
+
spinner.fail(`Error: ${data.message}`);
|
|
1067
1059
|
if (data.code === "INVALID_API_KEY" || data.code === "NOT_AUTHENTICATED") {
|
|
1068
1060
|
console.log();
|
|
1069
1061
|
console.log(chalk3.gray("Run"), chalk3.cyan("struere login"), chalk3.gray("to authenticate"));
|
|
@@ -1072,74 +1064,20 @@ async function runCloudDev(agent, project, cwd, port, options, spinner) {
|
|
|
1072
1064
|
}
|
|
1073
1065
|
};
|
|
1074
1066
|
ws.onerror = () => {
|
|
1075
|
-
spinner.fail("
|
|
1076
|
-
console.log(chalk3.red("Connection error"));
|
|
1067
|
+
spinner.fail("Connection error");
|
|
1077
1068
|
};
|
|
1078
1069
|
ws.onclose = () => {
|
|
1079
1070
|
if (isConnected) {
|
|
1080
|
-
spinner.stop();
|
|
1081
1071
|
console.log(chalk3.yellow("Disconnected from cloud"));
|
|
1082
1072
|
}
|
|
1083
1073
|
};
|
|
1084
|
-
const server = Bun.serve({
|
|
1085
|
-
port,
|
|
1086
|
-
async fetch(req) {
|
|
1087
|
-
const url = new URL(req.url);
|
|
1088
|
-
if (url.pathname === "/health") {
|
|
1089
|
-
return Response.json({
|
|
1090
|
-
status: "ok",
|
|
1091
|
-
agent: agent.name,
|
|
1092
|
-
mode: "cloud",
|
|
1093
|
-
cloudUrl
|
|
1094
|
-
});
|
|
1095
|
-
}
|
|
1096
|
-
if (url.pathname === "/api/chat" && req.method === "POST") {
|
|
1097
|
-
if (!cloudUrl || !sessionId) {
|
|
1098
|
-
return Response.json({ error: "Not connected to cloud" }, { status: 503 });
|
|
1099
|
-
}
|
|
1100
|
-
const body = await req.json();
|
|
1101
|
-
const response = await fetch(`${process.env.STRUERE_GATEWAY_URL || "https://gateway.struere.dev"}/v1/dev/${sessionId}/chat`, {
|
|
1102
|
-
method: "POST",
|
|
1103
|
-
headers: {
|
|
1104
|
-
"Content-Type": "application/json",
|
|
1105
|
-
Authorization: `Bearer ${apiKey || credentials?.token}`
|
|
1106
|
-
},
|
|
1107
|
-
body: JSON.stringify(body)
|
|
1108
|
-
});
|
|
1109
|
-
if (body.stream) {
|
|
1110
|
-
return new Response(response.body, {
|
|
1111
|
-
headers: {
|
|
1112
|
-
"Content-Type": "text/event-stream",
|
|
1113
|
-
"Cache-Control": "no-cache",
|
|
1114
|
-
Connection: "keep-alive"
|
|
1115
|
-
}
|
|
1116
|
-
});
|
|
1117
|
-
}
|
|
1118
|
-
const responseData = await response.json();
|
|
1119
|
-
return Response.json(responseData);
|
|
1120
|
-
}
|
|
1121
|
-
if (url.pathname === "/" && options.channel === "web") {
|
|
1122
|
-
return new Response(getDevHtml(agent.name, "cloud", cloudUrl), {
|
|
1123
|
-
headers: { "Content-Type": "text/html" }
|
|
1124
|
-
});
|
|
1125
|
-
}
|
|
1126
|
-
return new Response("Not Found", { status: 404 });
|
|
1127
|
-
}
|
|
1128
|
-
});
|
|
1129
|
-
if (options.channel === "web" && options.open) {
|
|
1130
|
-
const openUrl = `http://localhost:${port}`;
|
|
1131
|
-
if (process.platform === "darwin") {
|
|
1132
|
-
Bun.spawn(["open", openUrl]);
|
|
1133
|
-
} else if (process.platform === "linux") {
|
|
1134
|
-
Bun.spawn(["xdg-open", openUrl]);
|
|
1135
|
-
}
|
|
1136
|
-
}
|
|
1137
1074
|
const watcher = chokidar.watch([join7(cwd, "src"), join7(cwd, "struere.config.ts")], {
|
|
1138
1075
|
ignoreInitial: true,
|
|
1139
1076
|
ignored: /node_modules/
|
|
1140
1077
|
});
|
|
1141
1078
|
watcher.on("change", async (path) => {
|
|
1142
|
-
|
|
1079
|
+
const relativePath = path.replace(cwd, ".");
|
|
1080
|
+
console.log(chalk3.gray(`Changed: ${relativePath}`));
|
|
1143
1081
|
try {
|
|
1144
1082
|
agent = await loadAgent(cwd);
|
|
1145
1083
|
const bundle = await bundleAgent(cwd);
|
|
@@ -1154,23 +1092,20 @@ async function runCloudDev(agent, project, cwd, port, options, spinner) {
|
|
|
1154
1092
|
}));
|
|
1155
1093
|
}
|
|
1156
1094
|
} catch (error) {
|
|
1157
|
-
|
|
1158
|
-
spinner.start("Watching for changes");
|
|
1095
|
+
console.log(chalk3.red("Sync failed:"), error);
|
|
1159
1096
|
}
|
|
1160
1097
|
});
|
|
1161
1098
|
process.on("SIGINT", () => {
|
|
1162
1099
|
console.log();
|
|
1163
|
-
spinner.stop();
|
|
1164
1100
|
if (ws.readyState === WebSocket.OPEN) {
|
|
1165
1101
|
ws.send(JSON.stringify({ type: "unsync" }));
|
|
1166
1102
|
ws.close();
|
|
1167
1103
|
}
|
|
1168
1104
|
watcher.close();
|
|
1169
|
-
|
|
1170
|
-
console.log(chalk3.gray("Server stopped"));
|
|
1105
|
+
console.log(chalk3.gray("Stopped"));
|
|
1171
1106
|
process.exit(0);
|
|
1172
1107
|
});
|
|
1173
|
-
}
|
|
1108
|
+
});
|
|
1174
1109
|
async function bundleAgent(cwd) {
|
|
1175
1110
|
const result = await Bun.build({
|
|
1176
1111
|
entrypoints: [join7(cwd, "src", "agent.ts")],
|
|
@@ -1192,184 +1127,144 @@ function hashString(str) {
|
|
|
1192
1127
|
}
|
|
1193
1128
|
return Math.abs(hash).toString(16);
|
|
1194
1129
|
}
|
|
1195
|
-
function
|
|
1196
|
-
const
|
|
1197
|
-
|
|
1198
|
-
|
|
1199
|
-
|
|
1200
|
-
|
|
1201
|
-
|
|
1202
|
-
|
|
1203
|
-
|
|
1204
|
-
|
|
1205
|
-
body { font-family: system-ui, -apple-system, sans-serif; background: #0a0a0a; color: #fafafa; height: 100vh; display: flex; flex-direction: column; }
|
|
1206
|
-
header { padding: 1rem; border-bottom: 1px solid #333; display: flex; justify-content: space-between; align-items: center; }
|
|
1207
|
-
header h1 { font-size: 1rem; font-weight: 500; }
|
|
1208
|
-
header .mode { font-size: 0.875rem; }
|
|
1209
|
-
header a { text-decoration: none; }
|
|
1210
|
-
#messages { flex: 1; overflow-y: auto; padding: 1rem; display: flex; flex-direction: column; gap: 0.75rem; }
|
|
1211
|
-
.message { max-width: 80%; padding: 0.75rem 1rem; border-radius: 0.75rem; line-height: 1.5; white-space: pre-wrap; }
|
|
1212
|
-
.message.user { align-self: flex-end; background: #2563eb; }
|
|
1213
|
-
.message.assistant { align-self: flex-start; background: #27272a; }
|
|
1214
|
-
.message.tool { align-self: flex-start; background: #1e3a5f; font-family: monospace; font-size: 0.875rem; border-left: 3px solid #3b82f6; }
|
|
1215
|
-
.message.streaming { opacity: 0.9; }
|
|
1216
|
-
form { padding: 1rem; border-top: 1px solid #333; display: flex; gap: 0.5rem; }
|
|
1217
|
-
input { flex: 1; padding: 0.75rem 1rem; background: #18181b; border: 1px solid #333; border-radius: 0.5rem; color: #fafafa; font-size: 1rem; outline: none; }
|
|
1218
|
-
input:focus { border-color: #2563eb; }
|
|
1219
|
-
input:disabled { opacity: 0.5; }
|
|
1220
|
-
button { padding: 0.75rem 1.5rem; background: #2563eb; border: none; border-radius: 0.5rem; color: white; font-size: 1rem; cursor: pointer; }
|
|
1221
|
-
button:hover { background: #1d4ed8; }
|
|
1222
|
-
button:disabled { opacity: 0.5; cursor: not-allowed; }
|
|
1223
|
-
.toggle-container { padding: 0.5rem 1rem; display: flex; align-items: center; gap: 0.5rem; border-top: 1px solid #333; }
|
|
1224
|
-
.toggle-container label { font-size: 0.875rem; color: #888; }
|
|
1225
|
-
.toggle-container input[type="checkbox"] { width: 1rem; height: 1rem; }
|
|
1226
|
-
</style>
|
|
1227
|
-
</head>
|
|
1228
|
-
<body>
|
|
1229
|
-
<header>
|
|
1230
|
-
<h1>${agentName}</h1>
|
|
1231
|
-
<span class="mode">${modeLabel}</span>
|
|
1232
|
-
</header>
|
|
1233
|
-
<div id="messages"></div>
|
|
1234
|
-
<div class="toggle-container">
|
|
1235
|
-
<input type="checkbox" id="stream-toggle" checked />
|
|
1236
|
-
<label for="stream-toggle">Enable streaming</label>
|
|
1237
|
-
</div>
|
|
1238
|
-
<form id="chat-form">
|
|
1239
|
-
<input type="text" id="input" placeholder="Type a message..." autocomplete="off" />
|
|
1240
|
-
<button type="submit">Send</button>
|
|
1241
|
-
</form>
|
|
1242
|
-
<script>
|
|
1243
|
-
const messages = document.getElementById('messages');
|
|
1244
|
-
const form = document.getElementById('chat-form');
|
|
1245
|
-
const input = document.getElementById('input');
|
|
1246
|
-
const button = form.querySelector('button');
|
|
1247
|
-
const streamToggle = document.getElementById('stream-toggle');
|
|
1248
|
-
let conversationId = null;
|
|
1249
|
-
let isProcessing = false;
|
|
1250
|
-
|
|
1251
|
-
function addMessage(role, content, isStreaming = false) {
|
|
1252
|
-
const div = document.createElement('div');
|
|
1253
|
-
div.className = 'message ' + role + (isStreaming ? ' streaming' : '');
|
|
1254
|
-
div.textContent = content;
|
|
1255
|
-
messages.appendChild(div);
|
|
1256
|
-
messages.scrollTop = messages.scrollHeight;
|
|
1257
|
-
return div;
|
|
1130
|
+
async function interactiveSetup(cwd) {
|
|
1131
|
+
const spinner = ora3();
|
|
1132
|
+
let credentials = loadCredentials();
|
|
1133
|
+
if (!credentials) {
|
|
1134
|
+
console.log(chalk3.gray("Authentication required"));
|
|
1135
|
+
console.log();
|
|
1136
|
+
credentials = await performLogin();
|
|
1137
|
+
if (!credentials) {
|
|
1138
|
+
console.log(chalk3.red("Authentication failed"));
|
|
1139
|
+
return null;
|
|
1258
1140
|
}
|
|
1259
|
-
|
|
1260
|
-
|
|
1261
|
-
|
|
1262
|
-
|
|
1263
|
-
|
|
1141
|
+
} else {
|
|
1142
|
+
console.log(chalk3.green("\u2713"), "Logged in as", chalk3.cyan(credentials.user.name));
|
|
1143
|
+
console.log();
|
|
1144
|
+
}
|
|
1145
|
+
spinner.start("Fetching agents");
|
|
1146
|
+
const api = new ApiClient;
|
|
1147
|
+
let agents = [];
|
|
1148
|
+
try {
|
|
1149
|
+
const { agents: existingAgents } = await api.listAgents();
|
|
1150
|
+
agents = existingAgents;
|
|
1151
|
+
spinner.succeed(`Found ${agents.length} existing agent(s)`);
|
|
1152
|
+
} catch (error) {
|
|
1153
|
+
if (error instanceof ApiError && error.status === 401) {
|
|
1154
|
+
spinner.fail("Session expired");
|
|
1155
|
+
console.log();
|
|
1156
|
+
console.log(chalk3.gray("Run"), chalk3.cyan("struere login"), chalk3.gray("to re-authenticate"));
|
|
1157
|
+
return null;
|
|
1264
1158
|
}
|
|
1265
|
-
|
|
1266
|
-
|
|
1267
|
-
|
|
1268
|
-
|
|
1269
|
-
|
|
1270
|
-
|
|
1271
|
-
|
|
1272
|
-
|
|
1159
|
+
spinner.succeed("Ready to create agent");
|
|
1160
|
+
}
|
|
1161
|
+
console.log();
|
|
1162
|
+
const choices = [
|
|
1163
|
+
{ value: "link", label: "Link to an existing agent" },
|
|
1164
|
+
{ value: "create", label: "Create a new agent" },
|
|
1165
|
+
{ value: "cancel", label: "Cancel" }
|
|
1166
|
+
];
|
|
1167
|
+
if (agents.length === 0) {
|
|
1168
|
+
choices.shift();
|
|
1169
|
+
}
|
|
1170
|
+
const action = await promptChoice2("No agent configured. Would you like to:", choices);
|
|
1171
|
+
if (action === "cancel") {
|
|
1172
|
+
console.log();
|
|
1173
|
+
console.log(chalk3.gray("Run"), chalk3.cyan("struere init"), chalk3.gray("when ready to set up"));
|
|
1174
|
+
return null;
|
|
1175
|
+
}
|
|
1176
|
+
let selectedAgent = null;
|
|
1177
|
+
if (action === "link" && agents.length > 0) {
|
|
1178
|
+
console.log();
|
|
1179
|
+
const agentChoices = agents.map((a) => ({ value: a.id, label: `${a.name} (${a.slug})` }));
|
|
1180
|
+
const agentId = await promptChoice2("Select an agent:", agentChoices);
|
|
1181
|
+
selectedAgent = agents.find((a) => a.id === agentId) || null;
|
|
1182
|
+
} else if (action === "create") {
|
|
1183
|
+
console.log();
|
|
1184
|
+
const projectName = slugify2(basename2(cwd));
|
|
1185
|
+
const name = await promptText2("Agent name:", projectName);
|
|
1186
|
+
const displayName = name.split("-").map((word) => word.charAt(0).toUpperCase() + word.slice(1)).join(" ");
|
|
1187
|
+
spinner.start("Creating agent");
|
|
1188
|
+
try {
|
|
1189
|
+
const { agent } = await api.createAgent({
|
|
1190
|
+
name: displayName,
|
|
1191
|
+
slug: name,
|
|
1192
|
+
description: `${displayName} Agent`
|
|
1273
1193
|
});
|
|
1274
|
-
|
|
1275
|
-
|
|
1276
|
-
|
|
1277
|
-
|
|
1278
|
-
|
|
1279
|
-
|
|
1280
|
-
|
|
1281
|
-
|
|
1282
|
-
|
|
1283
|
-
|
|
1284
|
-
buffer += decoder.decode(value, { stream: true });
|
|
1285
|
-
const lines = buffer.split('\\n');
|
|
1286
|
-
buffer = lines.pop() || '';
|
|
1287
|
-
|
|
1288
|
-
for (const line of lines) {
|
|
1289
|
-
if (line.startsWith('data: ')) {
|
|
1290
|
-
try {
|
|
1291
|
-
const data = JSON.parse(line.slice(6));
|
|
1292
|
-
|
|
1293
|
-
if (data.conversationId) {
|
|
1294
|
-
conversationId = data.conversationId;
|
|
1295
|
-
}
|
|
1296
|
-
|
|
1297
|
-
if (data.type === 'text-delta' && (data.textDelta || data.content)) {
|
|
1298
|
-
fullText += data.textDelta || data.content;
|
|
1299
|
-
assistantDiv.textContent = fullText;
|
|
1300
|
-
messages.scrollTop = messages.scrollHeight;
|
|
1301
|
-
} else if (data.type === 'tool-call-start') {
|
|
1302
|
-
addMessage('tool', 'Calling tool: ' + (data.toolName || data.toolCall?.name));
|
|
1303
|
-
} else if (data.type === 'tool-result') {
|
|
1304
|
-
const resultText = typeof data.toolResult === 'string'
|
|
1305
|
-
? data.toolResult
|
|
1306
|
-
: JSON.stringify(data.toolResult || data.toolCall?.result, null, 2);
|
|
1307
|
-
addMessage('tool', 'Result: ' + resultText);
|
|
1308
|
-
} else if (data.type === 'finish') {
|
|
1309
|
-
assistantDiv.classList.remove('streaming');
|
|
1310
|
-
} else if (data.type === 'error') {
|
|
1311
|
-
assistantDiv.textContent = 'Error: ' + (data.error || data.message);
|
|
1312
|
-
assistantDiv.classList.remove('streaming');
|
|
1313
|
-
}
|
|
1314
|
-
} catch (e) {}
|
|
1315
|
-
}
|
|
1316
|
-
}
|
|
1317
|
-
}
|
|
1318
|
-
|
|
1319
|
-
if (!fullText) {
|
|
1320
|
-
assistantDiv.remove();
|
|
1194
|
+
selectedAgent = { id: agent.id, name: displayName, slug: name };
|
|
1195
|
+
spinner.succeed(`Created agent "${name}"`);
|
|
1196
|
+
} catch (error) {
|
|
1197
|
+
spinner.fail("Failed to create agent");
|
|
1198
|
+
console.log();
|
|
1199
|
+
if (error instanceof ApiError) {
|
|
1200
|
+
console.log(chalk3.red("Error:"), error.message);
|
|
1201
|
+
} else {
|
|
1202
|
+
console.log(chalk3.red("Error:"), error instanceof Error ? error.message : String(error));
|
|
1321
1203
|
}
|
|
1204
|
+
return null;
|
|
1322
1205
|
}
|
|
1323
|
-
|
|
1324
|
-
|
|
1325
|
-
|
|
1326
|
-
|
|
1327
|
-
|
|
1328
|
-
|
|
1329
|
-
|
|
1330
|
-
|
|
1331
|
-
|
|
1332
|
-
|
|
1333
|
-
if (data.toolCalls && data.toolCalls.length > 0) {
|
|
1334
|
-
for (const tc of data.toolCalls) {
|
|
1335
|
-
const resultText = typeof tc.result === 'string'
|
|
1336
|
-
? tc.result
|
|
1337
|
-
: JSON.stringify(tc.result, null, 2);
|
|
1338
|
-
addMessage('tool', tc.name + ': ' + resultText);
|
|
1339
|
-
}
|
|
1340
|
-
}
|
|
1341
|
-
|
|
1342
|
-
addMessage('assistant', data.response || data.content);
|
|
1206
|
+
}
|
|
1207
|
+
if (!selectedAgent) {
|
|
1208
|
+
return null;
|
|
1209
|
+
}
|
|
1210
|
+
const projectData = {
|
|
1211
|
+
agentId: selectedAgent.id,
|
|
1212
|
+
team: credentials.organization.slug,
|
|
1213
|
+
agent: {
|
|
1214
|
+
slug: selectedAgent.slug,
|
|
1215
|
+
name: selectedAgent.name
|
|
1343
1216
|
}
|
|
1344
|
-
|
|
1345
|
-
|
|
1346
|
-
|
|
1347
|
-
|
|
1348
|
-
|
|
1349
|
-
|
|
1350
|
-
|
|
1351
|
-
|
|
1352
|
-
|
|
1353
|
-
|
|
1354
|
-
|
|
1355
|
-
|
|
1356
|
-
|
|
1357
|
-
|
|
1358
|
-
|
|
1359
|
-
|
|
1360
|
-
|
|
1361
|
-
|
|
1362
|
-
|
|
1363
|
-
|
|
1364
|
-
|
|
1365
|
-
|
|
1217
|
+
};
|
|
1218
|
+
saveProject(cwd, projectData);
|
|
1219
|
+
console.log(chalk3.green("\u2713"), "Created struere.json");
|
|
1220
|
+
console.log();
|
|
1221
|
+
return projectData;
|
|
1222
|
+
}
|
|
1223
|
+
function slugify2(name) {
|
|
1224
|
+
return name.toLowerCase().replace(/[^a-z0-9]+/g, "-").replace(/^-+|-+$/g, "");
|
|
1225
|
+
}
|
|
1226
|
+
async function promptChoice2(message, choices) {
|
|
1227
|
+
console.log(chalk3.gray(message));
|
|
1228
|
+
console.log();
|
|
1229
|
+
for (let i = 0;i < choices.length; i++) {
|
|
1230
|
+
const prefix = i === 0 ? chalk3.cyan("\u276F") : chalk3.gray(" ");
|
|
1231
|
+
console.log(`${prefix} ${i + 1}. ${choices[i].label}`);
|
|
1232
|
+
}
|
|
1233
|
+
console.log();
|
|
1234
|
+
process.stdout.write(chalk3.gray("Enter choice (1-" + choices.length + "): "));
|
|
1235
|
+
const answer = await readLine2();
|
|
1236
|
+
const num = parseInt(answer, 10);
|
|
1237
|
+
if (num >= 1 && num <= choices.length) {
|
|
1238
|
+
return choices[num - 1].value;
|
|
1239
|
+
}
|
|
1240
|
+
return choices[0].value;
|
|
1241
|
+
}
|
|
1242
|
+
async function promptText2(message, defaultValue) {
|
|
1243
|
+
process.stdout.write(chalk3.gray(`${message} `));
|
|
1244
|
+
process.stdout.write(chalk3.cyan(`(${defaultValue}) `));
|
|
1245
|
+
const answer = await readLine2();
|
|
1246
|
+
return answer || defaultValue;
|
|
1247
|
+
}
|
|
1248
|
+
function readLine2() {
|
|
1249
|
+
return new Promise((resolve) => {
|
|
1250
|
+
let buffer = "";
|
|
1251
|
+
const onData = (chunk) => {
|
|
1252
|
+
const str = chunk.toString();
|
|
1253
|
+
buffer += str;
|
|
1254
|
+
if (str.includes(`
|
|
1255
|
+
`) || str.includes("\r")) {
|
|
1256
|
+
process.stdin.removeListener("data", onData);
|
|
1257
|
+
process.stdin.pause();
|
|
1258
|
+
process.stdin.setRawMode?.(false);
|
|
1259
|
+
resolve(buffer.replace(/[\r\n]/g, "").trim());
|
|
1366
1260
|
}
|
|
1367
|
-
}
|
|
1368
|
-
|
|
1369
|
-
|
|
1370
|
-
|
|
1371
|
-
|
|
1372
|
-
|
|
1261
|
+
};
|
|
1262
|
+
if (process.stdin.isTTY) {
|
|
1263
|
+
process.stdin.setRawMode?.(false);
|
|
1264
|
+
}
|
|
1265
|
+
process.stdin.resume();
|
|
1266
|
+
process.stdin.on("data", onData);
|
|
1267
|
+
});
|
|
1373
1268
|
}
|
|
1374
1269
|
|
|
1375
1270
|
// src/commands/build.ts
|
|
@@ -2114,7 +2009,7 @@ var whoamiCommand = new Command11("whoami").description("Show current logged in
|
|
|
2114
2009
|
});
|
|
2115
2010
|
|
|
2116
2011
|
// src/index.ts
|
|
2117
|
-
var CURRENT_VERSION = "0.2.
|
|
2012
|
+
var CURRENT_VERSION = "0.2.9";
|
|
2118
2013
|
async function checkForUpdates() {
|
|
2119
2014
|
try {
|
|
2120
2015
|
const response = await fetch("https://registry.npmjs.org/@struere/cli/latest", {
|
package/dist/utils/api.d.ts
CHANGED
|
@@ -53,7 +53,22 @@ export declare class ApiClient {
|
|
|
53
53
|
slug: string;
|
|
54
54
|
description: string | null;
|
|
55
55
|
status: string;
|
|
56
|
-
|
|
56
|
+
developmentVersionId: string | null;
|
|
57
|
+
productionVersionId: string | null;
|
|
58
|
+
environments: {
|
|
59
|
+
development: {
|
|
60
|
+
versionId: string;
|
|
61
|
+
version: string;
|
|
62
|
+
url: string;
|
|
63
|
+
deployedAt: string;
|
|
64
|
+
} | null;
|
|
65
|
+
production: {
|
|
66
|
+
versionId: string;
|
|
67
|
+
version: string;
|
|
68
|
+
url: string;
|
|
69
|
+
deployedAt: string;
|
|
70
|
+
} | null;
|
|
71
|
+
};
|
|
57
72
|
createdAt: string;
|
|
58
73
|
updatedAt: string;
|
|
59
74
|
}>;
|
|
@@ -76,7 +91,22 @@ export declare class ApiClient {
|
|
|
76
91
|
name: string;
|
|
77
92
|
slug: string;
|
|
78
93
|
status: string;
|
|
79
|
-
|
|
94
|
+
developmentVersionId: string | null;
|
|
95
|
+
productionVersionId: string | null;
|
|
96
|
+
environments: {
|
|
97
|
+
development: {
|
|
98
|
+
versionId: string;
|
|
99
|
+
version: string;
|
|
100
|
+
url: string;
|
|
101
|
+
deployedAt: string;
|
|
102
|
+
} | null;
|
|
103
|
+
production: {
|
|
104
|
+
versionId: string;
|
|
105
|
+
version: string;
|
|
106
|
+
url: string;
|
|
107
|
+
deployedAt: string;
|
|
108
|
+
} | null;
|
|
109
|
+
};
|
|
80
110
|
};
|
|
81
111
|
versions: Array<{
|
|
82
112
|
id: string;
|
|
@@ -88,7 +118,7 @@ export declare class ApiClient {
|
|
|
88
118
|
deployAgent(agentId: string, data: {
|
|
89
119
|
bundle: string;
|
|
90
120
|
version: string;
|
|
91
|
-
environment: '
|
|
121
|
+
environment: 'development' | 'production';
|
|
92
122
|
metadata: {
|
|
93
123
|
modelProvider: string;
|
|
94
124
|
modelName: string;
|
package/dist/utils/api.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/utils/api.ts"],"names":[],"mappings":"AAMA,wBAAgB,SAAS,IAAI,MAAM,CAElC;AAED,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAED,wBAAgB,UAAU,IAAI,MAAM,CAEnC;AAED,qBAAa,SAAS;IACpB,OAAO,CAAC,OAAO,CAAQ;IACvB,OAAO,CAAC,aAAa,CAAC,CAAQ;IAC9B,OAAO,CAAC,YAAY,CAAS;gBAEjB,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,YAAY,UAAQ;YAMpD,OAAO;IAqCf,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;eAEhC,MAAM;cACP;YAAE,EAAE,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAC;YAAC,cAAc,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE;;IAOrF,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;eAE/C,MAAM;cACP;YAAE,EAAE,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAC;YAAC,cAAc,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE;;IAOrF,KAAK;cAGD;YAAE,EAAE,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAC;YAAC,cAAc,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE;sBACzE;YAAE,EAAE,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE;mBAC3D,MAAM;;IAIf,YAAY;eACa,MAAM;;IAG/B,UAAU;gBAEJ,KAAK,CAAC;YACZ,EAAE,EAAE,MAAM,CAAA;YACV,IAAI,EAAE,MAAM,CAAA;YACZ,IAAI,EAAE,MAAM,CAAA;YACZ,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;YAC1B,MAAM,EAAE,MAAM,CAAA;YACd,
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/utils/api.ts"],"names":[],"mappings":"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"}
|