@chucky.cloud/cli 0.2.0 → 0.2.2
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 +12 -11
- package/dist/commands/deploy.js.map +1 -1
- package/dist/commands/prompt.d.ts +23 -0
- package/dist/commands/prompt.d.ts.map +1 -0
- package/dist/commands/prompt.js +338 -0
- package/dist/commands/prompt.js.map +1 -0
- package/dist/index.js +23 -1
- package/dist/index.js.map +1 -1
- package/dist/lib/api.d.ts +2 -2
- package/dist/lib/api.d.ts.map +1 -1
- package/dist/lib/host-tools.d.ts +52 -0
- package/dist/lib/host-tools.d.ts.map +1 -0
- package/dist/lib/host-tools.js +178 -0
- package/dist/lib/host-tools.js.map +1 -0
- package/dist/lib/token.d.ts +10 -0
- package/dist/lib/token.d.ts.map +1 -0
- package/dist/lib/token.js +39 -0
- package/dist/lib/token.js.map +1 -0
- package/package.json +4 -1
package/dist/commands/deploy.js
CHANGED
|
@@ -106,12 +106,12 @@ export async function deployCommand(options) {
|
|
|
106
106
|
unlinkSync(archivePath);
|
|
107
107
|
}
|
|
108
108
|
console.log(chalk.bold.green("\nDeployment successful!"));
|
|
109
|
-
console.log(chalk.dim(`\nProject
|
|
109
|
+
console.log(chalk.dim(`\nProject ID: ${result.projectId}`));
|
|
110
110
|
console.log(chalk.dim(`Workspace: ${uploadInfo.key}`));
|
|
111
111
|
// Get HMAC key for example curl command
|
|
112
112
|
try {
|
|
113
113
|
const hmacInfo = await api.getHmacKey(projectConfig.projectId);
|
|
114
|
-
printExampleCurlCommand(result.
|
|
114
|
+
printExampleCurlCommand(result.projectId, hmacInfo.hmacKey, projectConfig.projectName);
|
|
115
115
|
}
|
|
116
116
|
catch {
|
|
117
117
|
// Silently skip if we can't get HMAC key
|
|
@@ -134,11 +134,11 @@ export async function deployCommand(options) {
|
|
|
134
134
|
/**
|
|
135
135
|
* Generate a JWT token for API access
|
|
136
136
|
*/
|
|
137
|
-
function generateJwt(
|
|
137
|
+
function generateJwt(projectId, hmacKey) {
|
|
138
138
|
const now = Math.floor(Date.now() / 1000);
|
|
139
139
|
const payload = {
|
|
140
140
|
sub: "example-user",
|
|
141
|
-
iss:
|
|
141
|
+
iss: projectId,
|
|
142
142
|
exp: now + 3600, // 1 hour
|
|
143
143
|
iat: now,
|
|
144
144
|
budget: {
|
|
@@ -160,8 +160,8 @@ function generateJwt(projectUuid, hmacKey) {
|
|
|
160
160
|
/**
|
|
161
161
|
* Print example curl command for the /prompt endpoint
|
|
162
162
|
*/
|
|
163
|
-
function printExampleCurlCommand(
|
|
164
|
-
const token = generateJwt(
|
|
163
|
+
function printExampleCurlCommand(projectId, hmacKey, projectName) {
|
|
164
|
+
const token = generateJwt(projectId, hmacKey);
|
|
165
165
|
console.log(chalk.bold("\n\nExample API Usage"));
|
|
166
166
|
console.log(chalk.dim("─".repeat(50)));
|
|
167
167
|
console.log(chalk.dim("\nTest it now (token valid for 1 hour):"));
|
|
@@ -200,8 +200,8 @@ curl -X POST 'https://conjure.chucky.cloud/prompt' \\
|
|
|
200
200
|
console.log(chalk.cyan(`
|
|
201
201
|
import crypto from 'crypto';
|
|
202
202
|
|
|
203
|
-
const
|
|
204
|
-
const
|
|
203
|
+
const hmacSecret = '${hmacKey}';
|
|
204
|
+
const projectId = '${projectId}';
|
|
205
205
|
|
|
206
206
|
function signJwt(payload, secret) {
|
|
207
207
|
const header = { alg: 'HS256', typ: 'JWT' };
|
|
@@ -216,14 +216,15 @@ function signJwt(payload, secret) {
|
|
|
216
216
|
const now = Math.floor(Date.now() / 1000);
|
|
217
217
|
const token = signJwt({
|
|
218
218
|
sub: 'your-user-id',
|
|
219
|
-
iss:
|
|
219
|
+
iss: projectId,
|
|
220
220
|
exp: now + 3600,
|
|
221
221
|
iat: now,
|
|
222
222
|
budget: { ai: 1000000, compute: 3600000, window: 'hour' }
|
|
223
|
-
},
|
|
223
|
+
}, hmacSecret);
|
|
224
224
|
`));
|
|
225
225
|
console.log(chalk.dim("Project: " + projectName));
|
|
226
|
-
console.log(chalk.dim("
|
|
226
|
+
console.log(chalk.dim("Project ID: " + projectId));
|
|
227
|
+
console.log(chalk.dim("HMAC Secret: " + hmacKey));
|
|
227
228
|
console.log(chalk.dim("API Endpoint: https://conjure.chucky.cloud/prompt"));
|
|
228
229
|
}
|
|
229
230
|
//# sourceMappingURL=deploy.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deploy.js","sourceRoot":"","sources":["../../src/commands/deploy.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"deploy.js","sourceRoot":"","sources":["../../src/commands/deploy.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
export interface PromptOptions {
|
|
2
|
+
project?: string;
|
|
3
|
+
token?: string;
|
|
4
|
+
outputFormat?: "text" | "json" | "stream-json";
|
|
5
|
+
jsonSchema?: string;
|
|
6
|
+
model?: string;
|
|
7
|
+
systemPrompt?: string;
|
|
8
|
+
allowedTools?: string;
|
|
9
|
+
disallowedTools?: string;
|
|
10
|
+
permissionMode?: string;
|
|
11
|
+
dangerouslySkipPermissions?: boolean;
|
|
12
|
+
maxTurns?: number;
|
|
13
|
+
maxBudgetUsd?: number;
|
|
14
|
+
mcpConfig?: string;
|
|
15
|
+
agents?: string;
|
|
16
|
+
betas?: string;
|
|
17
|
+
allowPossession?: boolean;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Main prompt command handler
|
|
21
|
+
*/
|
|
22
|
+
export declare function promptCommand(promptText: string | undefined, options: PromptOptions): Promise<void>;
|
|
23
|
+
//# sourceMappingURL=prompt.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prompt.d.ts","sourceRoot":"","sources":["../../src/commands/prompt.ts"],"names":[],"mappings":"AA0BA,MAAM,WAAW,aAAa;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,aAAa,CAAC;IAC/C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,0BAA0B,CAAC,EAAE,OAAO,CAAC;IACrC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED;;GAEG;AACH,wBAAsB,aAAa,CACjC,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,IAAI,CAAC,CA2Hf"}
|
|
@@ -0,0 +1,338 @@
|
|
|
1
|
+
import chalk from "chalk";
|
|
2
|
+
import ora from "ora";
|
|
3
|
+
import { select } from "@inquirer/prompts";
|
|
4
|
+
import { requireApiKey, loadProjectConfig } from "../lib/config.js";
|
|
5
|
+
import { ChuckyApi } from "../lib/api.js";
|
|
6
|
+
import { ChuckyClient, createToken, createBudget, browserTool, createMcpServer, getAssistantText, isSuccessResult, } from "@chucky.cloud/sdk";
|
|
7
|
+
import { executeHostBash, executeHostRead, executeHostWrite, executeHostEdit, executeHostGlob, executeHostGrep, } from "../lib/host-tools.js";
|
|
8
|
+
/**
|
|
9
|
+
* Main prompt command handler
|
|
10
|
+
*/
|
|
11
|
+
export async function promptCommand(promptText, options) {
|
|
12
|
+
// Read prompt from stdin if not provided
|
|
13
|
+
let message = promptText;
|
|
14
|
+
if (!message) {
|
|
15
|
+
if (!process.stdin.isTTY) {
|
|
16
|
+
message = await readStdin();
|
|
17
|
+
}
|
|
18
|
+
if (!message) {
|
|
19
|
+
console.log(chalk.red("Error: No prompt provided"));
|
|
20
|
+
console.log(chalk.dim("Usage: chucky prompt 'your prompt here'"));
|
|
21
|
+
console.log(chalk.dim(" or: echo 'prompt' | chucky prompt --project myproject"));
|
|
22
|
+
process.exit(1);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
try {
|
|
26
|
+
// Get or use provided token
|
|
27
|
+
let token = options.token;
|
|
28
|
+
let projectName = "custom-token";
|
|
29
|
+
if (!token) {
|
|
30
|
+
const { project, hmacKey } = await resolveProject(options.project);
|
|
31
|
+
projectName = project.name;
|
|
32
|
+
token = await createToken({
|
|
33
|
+
userId: "cli-user",
|
|
34
|
+
projectId: project.id,
|
|
35
|
+
secret: hmacKey,
|
|
36
|
+
budget: createBudget({
|
|
37
|
+
aiDollars: 100,
|
|
38
|
+
computeHours: 10000,
|
|
39
|
+
window: "hour",
|
|
40
|
+
}),
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
// Build session options
|
|
44
|
+
const sessionOptions = buildSessionOptions(options);
|
|
45
|
+
// Add host tools if --allow-possession is set
|
|
46
|
+
if (options.allowPossession) {
|
|
47
|
+
const hostTools = getHostTools(options);
|
|
48
|
+
const hostServer = createMcpServer("host-tools", hostTools);
|
|
49
|
+
sessionOptions.mcpServers = [...(sessionOptions.mcpServers || []), hostServer];
|
|
50
|
+
console.log(chalk.yellow(`\n⚠️ Possession mode enabled - Claude can execute commands on your machine`));
|
|
51
|
+
console.log(chalk.dim(` Host tools: ${hostTools.map((t) => t.name).join(", ")}\n`));
|
|
52
|
+
}
|
|
53
|
+
const outputFormat = options.outputFormat || "text";
|
|
54
|
+
const jsonOutput = outputFormat === "json" || outputFormat === "stream-json";
|
|
55
|
+
const spinner = ora(`Connecting to ${chalk.cyan(projectName)}...`).start();
|
|
56
|
+
// Create client and session
|
|
57
|
+
const client = new ChuckyClient({ token });
|
|
58
|
+
const session = await client.createSession(sessionOptions);
|
|
59
|
+
spinner.text = `Sending prompt to ${chalk.cyan(projectName)}...`;
|
|
60
|
+
// Send the message
|
|
61
|
+
await session.send(message);
|
|
62
|
+
spinner.stop();
|
|
63
|
+
// Stream the response
|
|
64
|
+
let finalResult = null;
|
|
65
|
+
for await (const msg of session.stream()) {
|
|
66
|
+
if (jsonOutput) {
|
|
67
|
+
console.log(JSON.stringify(msg));
|
|
68
|
+
}
|
|
69
|
+
else {
|
|
70
|
+
if (msg.type === "assistant") {
|
|
71
|
+
// Use SDK helper to extract text
|
|
72
|
+
const text = getAssistantText(msg);
|
|
73
|
+
if (text) {
|
|
74
|
+
process.stdout.write(text);
|
|
75
|
+
}
|
|
76
|
+
// Also check for tool uses in the content
|
|
77
|
+
const content = msg.message?.content || [];
|
|
78
|
+
for (const block of content) {
|
|
79
|
+
if (typeof block === "object" && block.type === "tool_use") {
|
|
80
|
+
console.log(chalk.blue(`\n[Tool] ${block.name}`));
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
else if (msg.type === "user") {
|
|
85
|
+
// Tool results come back as user messages
|
|
86
|
+
const content = msg.message?.content;
|
|
87
|
+
if (Array.isArray(content)) {
|
|
88
|
+
for (const block of content) {
|
|
89
|
+
if (typeof block === "object" && block.type === "tool_result") {
|
|
90
|
+
const resultContent = typeof block.content === "string"
|
|
91
|
+
? block.content
|
|
92
|
+
: JSON.stringify(block.content);
|
|
93
|
+
const preview = resultContent.length > 200
|
|
94
|
+
? resultContent.slice(0, 200) + "..."
|
|
95
|
+
: resultContent;
|
|
96
|
+
console.log(chalk.green(`[Result] ${preview}`));
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
else if (msg.type === "result") {
|
|
102
|
+
finalResult = msg;
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
if (!jsonOutput) {
|
|
107
|
+
console.log(chalk.green("\n\n✓ Complete"));
|
|
108
|
+
}
|
|
109
|
+
else if (outputFormat === "json" && finalResult && isSuccessResult(finalResult)) {
|
|
110
|
+
// For pure JSON mode, also output the final result
|
|
111
|
+
const output = finalResult.structured_output ?? finalResult.result;
|
|
112
|
+
if (options.jsonSchema && output) {
|
|
113
|
+
console.log(JSON.stringify({ finalResult: output }, null, 2));
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
// Close the session
|
|
117
|
+
session.close();
|
|
118
|
+
}
|
|
119
|
+
catch (error) {
|
|
120
|
+
console.log(chalk.red(`\nError: ${error.message}`));
|
|
121
|
+
process.exit(1);
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Read prompt from stdin
|
|
126
|
+
*/
|
|
127
|
+
async function readStdin() {
|
|
128
|
+
return new Promise((resolve) => {
|
|
129
|
+
let data = "";
|
|
130
|
+
process.stdin.setEncoding("utf8");
|
|
131
|
+
process.stdin.on("data", (chunk) => {
|
|
132
|
+
data += chunk;
|
|
133
|
+
});
|
|
134
|
+
process.stdin.on("end", () => {
|
|
135
|
+
resolve(data.trim());
|
|
136
|
+
});
|
|
137
|
+
setTimeout(() => {
|
|
138
|
+
if (!data)
|
|
139
|
+
resolve("");
|
|
140
|
+
}, 100);
|
|
141
|
+
});
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* Resolve project by name, ID, or interactive selection
|
|
145
|
+
*/
|
|
146
|
+
async function resolveProject(projectNameOrId) {
|
|
147
|
+
const apiKey = requireApiKey();
|
|
148
|
+
const api = new ChuckyApi(apiKey);
|
|
149
|
+
if (!projectNameOrId) {
|
|
150
|
+
const localConfig = loadProjectConfig();
|
|
151
|
+
if (localConfig) {
|
|
152
|
+
projectNameOrId = localConfig.projectId;
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
const projects = await api.listProjects();
|
|
156
|
+
if (projects.length === 0) {
|
|
157
|
+
throw new Error("No projects found. Create one with 'chucky init' first.");
|
|
158
|
+
}
|
|
159
|
+
let project;
|
|
160
|
+
if (projectNameOrId) {
|
|
161
|
+
project = projects.find((p) => p.id === projectNameOrId ||
|
|
162
|
+
p.name.toLowerCase() === projectNameOrId.toLowerCase());
|
|
163
|
+
if (!project) {
|
|
164
|
+
throw new Error(`Project not found: ${projectNameOrId}`);
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
else {
|
|
168
|
+
const choices = projects.map((p) => ({
|
|
169
|
+
name: `${p.name} ${p.isActive ? chalk.green("(active)") : chalk.dim("(inactive)")}`,
|
|
170
|
+
value: p.id,
|
|
171
|
+
}));
|
|
172
|
+
const selectedId = await select({
|
|
173
|
+
message: "Select a project:",
|
|
174
|
+
choices,
|
|
175
|
+
});
|
|
176
|
+
project = projects.find((p) => p.id === selectedId);
|
|
177
|
+
}
|
|
178
|
+
const hmacInfo = await api.getHmacKey(project.id);
|
|
179
|
+
return { project, hmacKey: hmacInfo.hmacKey };
|
|
180
|
+
}
|
|
181
|
+
/**
|
|
182
|
+
* Build session options from CLI options
|
|
183
|
+
*/
|
|
184
|
+
function buildSessionOptions(options) {
|
|
185
|
+
const sessionOptions = {};
|
|
186
|
+
if (options.model) {
|
|
187
|
+
const modelMap = {
|
|
188
|
+
sonnet: "claude-sonnet-4-5-20250929",
|
|
189
|
+
opus: "claude-opus-4-5-20250929",
|
|
190
|
+
haiku: "claude-haiku-3-5-20250929",
|
|
191
|
+
};
|
|
192
|
+
sessionOptions.model = (modelMap[options.model] || options.model);
|
|
193
|
+
}
|
|
194
|
+
if (options.systemPrompt) {
|
|
195
|
+
sessionOptions.systemPrompt = options.systemPrompt;
|
|
196
|
+
}
|
|
197
|
+
if (options.allowedTools) {
|
|
198
|
+
sessionOptions.allowedTools = options.allowedTools.split(",").map((t) => t.trim());
|
|
199
|
+
}
|
|
200
|
+
if (options.disallowedTools) {
|
|
201
|
+
sessionOptions.disallowedTools = options.disallowedTools.split(",").map((t) => t.trim());
|
|
202
|
+
}
|
|
203
|
+
if (options.permissionMode) {
|
|
204
|
+
sessionOptions.permissionMode = options.permissionMode;
|
|
205
|
+
}
|
|
206
|
+
if (options.dangerouslySkipPermissions) {
|
|
207
|
+
sessionOptions.permissionMode = "bypassPermissions";
|
|
208
|
+
sessionOptions.allowDangerouslySkipPermissions = true;
|
|
209
|
+
}
|
|
210
|
+
if (options.maxTurns) {
|
|
211
|
+
sessionOptions.maxTurns = options.maxTurns;
|
|
212
|
+
}
|
|
213
|
+
if (options.jsonSchema) {
|
|
214
|
+
try {
|
|
215
|
+
const schema = JSON.parse(options.jsonSchema);
|
|
216
|
+
sessionOptions.outputFormat = {
|
|
217
|
+
type: "json_schema",
|
|
218
|
+
schema,
|
|
219
|
+
};
|
|
220
|
+
}
|
|
221
|
+
catch {
|
|
222
|
+
throw new Error("Invalid JSON in --json-schema");
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
return sessionOptions;
|
|
226
|
+
}
|
|
227
|
+
/**
|
|
228
|
+
* Get host tools based on allowed/disallowed lists
|
|
229
|
+
*/
|
|
230
|
+
function getHostTools(options) {
|
|
231
|
+
const baseCwd = process.cwd();
|
|
232
|
+
const allHostTools = [
|
|
233
|
+
browserTool({
|
|
234
|
+
name: "HostBash",
|
|
235
|
+
description: "Execute a bash command on the user's local machine",
|
|
236
|
+
inputSchema: {
|
|
237
|
+
type: "object",
|
|
238
|
+
properties: {
|
|
239
|
+
command: { type: "string", description: "The bash command to execute" },
|
|
240
|
+
cwd: { type: "string", description: "Working directory (optional)" },
|
|
241
|
+
timeout: { type: "number", description: "Timeout in ms (optional, default 30000)" },
|
|
242
|
+
},
|
|
243
|
+
required: ["command"],
|
|
244
|
+
},
|
|
245
|
+
handler: async (input) => executeHostBash(input, baseCwd),
|
|
246
|
+
}),
|
|
247
|
+
browserTool({
|
|
248
|
+
name: "HostRead",
|
|
249
|
+
description: "Read a file from the user's local filesystem",
|
|
250
|
+
inputSchema: {
|
|
251
|
+
type: "object",
|
|
252
|
+
properties: {
|
|
253
|
+
path: { type: "string", description: "Path to the file" },
|
|
254
|
+
encoding: { type: "string", description: "File encoding (optional, default utf-8)" },
|
|
255
|
+
},
|
|
256
|
+
required: ["path"],
|
|
257
|
+
},
|
|
258
|
+
handler: async (input) => {
|
|
259
|
+
const { path, encoding } = input;
|
|
260
|
+
return executeHostRead({ path, encoding: encoding }, baseCwd);
|
|
261
|
+
},
|
|
262
|
+
}),
|
|
263
|
+
browserTool({
|
|
264
|
+
name: "HostWrite",
|
|
265
|
+
description: "Write content to a file on the user's local filesystem",
|
|
266
|
+
inputSchema: {
|
|
267
|
+
type: "object",
|
|
268
|
+
properties: {
|
|
269
|
+
path: { type: "string", description: "Path to the file" },
|
|
270
|
+
content: { type: "string", description: "Content to write" },
|
|
271
|
+
encoding: { type: "string", description: "File encoding (optional, default utf-8)" },
|
|
272
|
+
},
|
|
273
|
+
required: ["path", "content"],
|
|
274
|
+
},
|
|
275
|
+
handler: async (input) => {
|
|
276
|
+
const { path, content, encoding } = input;
|
|
277
|
+
return executeHostWrite({ path, content, encoding: encoding }, baseCwd);
|
|
278
|
+
},
|
|
279
|
+
}),
|
|
280
|
+
browserTool({
|
|
281
|
+
name: "HostEdit",
|
|
282
|
+
description: "Edit a file by replacing a specific string with another",
|
|
283
|
+
inputSchema: {
|
|
284
|
+
type: "object",
|
|
285
|
+
properties: {
|
|
286
|
+
path: { type: "string", description: "Path to the file" },
|
|
287
|
+
old_string: { type: "string", description: "String to find" },
|
|
288
|
+
new_string: { type: "string", description: "String to replace with" },
|
|
289
|
+
replace_all: { type: "boolean", description: "Replace all occurrences (optional)" },
|
|
290
|
+
},
|
|
291
|
+
required: ["path", "old_string", "new_string"],
|
|
292
|
+
},
|
|
293
|
+
handler: async (input) => executeHostEdit(input, baseCwd),
|
|
294
|
+
}),
|
|
295
|
+
browserTool({
|
|
296
|
+
name: "HostGlob",
|
|
297
|
+
description: "Find files matching a glob pattern on the user's local filesystem",
|
|
298
|
+
inputSchema: {
|
|
299
|
+
type: "object",
|
|
300
|
+
properties: {
|
|
301
|
+
pattern: { type: "string", description: 'Glob pattern (e.g., "**/*.ts")' },
|
|
302
|
+
cwd: { type: "string", description: "Base directory (optional)" },
|
|
303
|
+
ignore: { type: "array", items: { type: "string" }, description: "Patterns to ignore" },
|
|
304
|
+
},
|
|
305
|
+
required: ["pattern"],
|
|
306
|
+
},
|
|
307
|
+
handler: async (input) => executeHostGlob(input, baseCwd),
|
|
308
|
+
}),
|
|
309
|
+
browserTool({
|
|
310
|
+
name: "HostGrep",
|
|
311
|
+
description: "Search for a pattern in files on the user's local filesystem",
|
|
312
|
+
inputSchema: {
|
|
313
|
+
type: "object",
|
|
314
|
+
properties: {
|
|
315
|
+
pattern: { type: "string", description: "Regex pattern to search for" },
|
|
316
|
+
path: { type: "string", description: "Path to search in (optional)" },
|
|
317
|
+
glob: { type: "string", description: "File pattern filter (optional)" },
|
|
318
|
+
ignoreCase: { type: "boolean", description: "Case-insensitive (optional)" },
|
|
319
|
+
maxResults: { type: "number", description: "Max results (optional, default 100)" },
|
|
320
|
+
},
|
|
321
|
+
required: ["pattern"],
|
|
322
|
+
},
|
|
323
|
+
handler: async (input) => executeHostGrep(input, baseCwd),
|
|
324
|
+
}),
|
|
325
|
+
];
|
|
326
|
+
// Filter based on allowed/disallowed
|
|
327
|
+
let tools = allHostTools;
|
|
328
|
+
if (options.allowedTools) {
|
|
329
|
+
const allowed = options.allowedTools.split(",").map((t) => t.trim());
|
|
330
|
+
tools = tools.filter((t) => allowed.includes(t.name));
|
|
331
|
+
}
|
|
332
|
+
if (options.disallowedTools) {
|
|
333
|
+
const disallowed = options.disallowedTools.split(",").map((t) => t.trim());
|
|
334
|
+
tools = tools.filter((t) => !disallowed.includes(t.name));
|
|
335
|
+
}
|
|
336
|
+
return tools;
|
|
337
|
+
}
|
|
338
|
+
//# sourceMappingURL=prompt.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../src/commands/prompt.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -7,11 +7,12 @@ import { deployCommand } from "./commands/deploy.js";
|
|
|
7
7
|
import { keysCommand } from "./commands/keys.js";
|
|
8
8
|
import { configAnthropicCommand } from "./commands/config.js";
|
|
9
9
|
import { deleteCommand } from "./commands/delete.js";
|
|
10
|
+
import { promptCommand } from "./commands/prompt.js";
|
|
10
11
|
const program = new Command();
|
|
11
12
|
program
|
|
12
13
|
.name("chucky")
|
|
13
14
|
.description("CLI for deploying workspaces to Chucky cloud")
|
|
14
|
-
.version("0.
|
|
15
|
+
.version("0.2.2");
|
|
15
16
|
// Login command
|
|
16
17
|
program
|
|
17
18
|
.command("login")
|
|
@@ -55,6 +56,27 @@ program
|
|
|
55
56
|
.command("delete [projectId]")
|
|
56
57
|
.description("Delete a project")
|
|
57
58
|
.action(deleteCommand);
|
|
59
|
+
// Prompt command
|
|
60
|
+
program
|
|
61
|
+
.command("prompt [prompt]")
|
|
62
|
+
.description("Send a prompt to a Chucky project")
|
|
63
|
+
.option("--project <name|id>", "Project to run against")
|
|
64
|
+
.option("--token <jwt>", "Use a pre-generated JWT token")
|
|
65
|
+
.option("--output-format <format>", "Output format: text, json, stream-json", "text")
|
|
66
|
+
.option("--json-schema <schema>", "JSON Schema for structured output")
|
|
67
|
+
.option("--model <model>", "Model: sonnet, opus, haiku, or full name")
|
|
68
|
+
.option("--system-prompt <prompt>", "System prompt for the session")
|
|
69
|
+
.option("--allowed-tools <tools>", "Comma-separated list of allowed tools")
|
|
70
|
+
.option("--disallowed-tools <tools>", "Comma-separated list of disallowed tools")
|
|
71
|
+
.option("--permission-mode <mode>", "Permission mode (bypassPermissions, default, etc.)")
|
|
72
|
+
.option("--dangerously-skip-permissions", "Bypass all permission checks")
|
|
73
|
+
.option("--max-turns <n>", "Maximum conversation turns", parseInt)
|
|
74
|
+
.option("--max-budget-usd <amount>", "Maximum spend limit", parseFloat)
|
|
75
|
+
.option("--mcp-config <json>", "MCP servers configuration (JSON)")
|
|
76
|
+
.option("--agents <json>", "Custom agents definition (JSON)")
|
|
77
|
+
.option("--betas <betas>", "Beta headers (comma-separated)")
|
|
78
|
+
.option("--allow-possession", "Enable host tools - Claude can execute commands on your machine")
|
|
79
|
+
.action(promptCommand);
|
|
58
80
|
// Parse arguments
|
|
59
81
|
program.parse();
|
|
60
82
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,QAAQ,CAAC;KACd,WAAW,CAAC,8CAA8C,CAAC;KAC3D,OAAO,CAAC,OAAO,CAAC,CAAC;AAEpB,gBAAgB;AAChB,OAAO;KACJ,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CAAC,uCAAuC,CAAC;KACpD,MAAM,CAAC,iBAAiB,EAAE,uBAAuB,CAAC;KAClD,MAAM,CAAC,YAAY,CAAC,CAAC;AAExB,eAAe;AACf,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,KAAK,CAAC,IAAI,CAAC;KACX,WAAW,CAAC,mBAAmB,CAAC;KAChC,MAAM,CAAC,WAAW,CAAC,CAAC;AAEvB,eAAe;AACf,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,0DAA0D,CAAC;KACvE,MAAM,CAAC,WAAW,EAAE,+BAA+B,CAAC;KACpD,MAAM,CAAC,WAAW,CAAC,CAAC;AAEvB,iBAAiB;AACjB,OAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,4BAA4B,CAAC;KACzC,MAAM,CAAC,qBAAqB,EAAE,qCAAqC,CAAC;KACpE,MAAM,CAAC,aAAa,CAAC,CAAC;AAEzB,eAAe;AACf,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,mCAAmC,CAAC;KAChD,MAAM,CAAC,WAAW,CAAC,CAAC;AAEvB,kBAAkB;AAClB,MAAM,SAAS,GAAG,OAAO;KACtB,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,4BAA4B,CAAC,CAAC;AAE7C,SAAS;KACN,OAAO,CAAC,WAAW,CAAC;KACpB,WAAW,CAAC,2CAA2C,CAAC;KACxD,MAAM,CAAC,iBAAiB,EAAE,gCAAgC,CAAC;KAC3D,MAAM,CAAC,sBAAsB,CAAC,CAAC;AAElC,iBAAiB;AACjB,OAAO;KACJ,OAAO,CAAC,oBAAoB,CAAC;KAC7B,WAAW,CAAC,kBAAkB,CAAC;KAC/B,MAAM,CAAC,aAAa,CAAC,CAAC;AAEzB,kBAAkB;AAClB,OAAO,CAAC,KAAK,EAAE,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/api.d.ts
CHANGED
|
@@ -13,7 +13,7 @@ export interface CreateProjectResult {
|
|
|
13
13
|
export interface UploadUrlInfo {
|
|
14
14
|
presignedUrl: string;
|
|
15
15
|
key: string;
|
|
16
|
-
|
|
16
|
+
projectId: string;
|
|
17
17
|
}
|
|
18
18
|
export interface ValidationResult {
|
|
19
19
|
valid: boolean;
|
|
@@ -70,7 +70,7 @@ export declare class ChuckyApi {
|
|
|
70
70
|
markWorkspaceUploaded(projectId: string): Promise<{
|
|
71
71
|
success: boolean;
|
|
72
72
|
hasWorkspace: boolean;
|
|
73
|
-
|
|
73
|
+
projectId: string;
|
|
74
74
|
}>;
|
|
75
75
|
}
|
|
76
76
|
//# sourceMappingURL=api.d.ts.map
|
package/dist/lib/api.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/lib/api.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,aAAa;IAC5B,YAAY,EAAE,MAAM,CAAC;IACrB,GAAG,EAAE,MAAM,CAAC;IACZ,
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/lib/api.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,aAAa;IAC5B,YAAY,EAAE,MAAM,CAAC;IACrB,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,OAAO,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,MAAM,CAAS;gBAEX,MAAM,EAAE,MAAM;YAKZ,OAAO;IA0BrB;;OAEG;IACG,cAAc,IAAI,OAAO,CAAC,gBAAgB,CAAC;IAUjD;;OAEG;IACG,YAAY,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;IAKxC;;OAEG;IACG,aAAa,CACjB,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,eAAe,CAAC,EAAE,MAAM,CAAA;KAAE,GAC3D,OAAO,CAAC,mBAAmB,CAAC;IAQ/B;;OAEG;IACG,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAMrD;;OAEG;IACG,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IAQpF;;OAEG;IACG,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAOhF;;OAEG;IACG,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAM7D;;OAEG;IACG,qBAAqB,CACzB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,YAAY,EAAE,OAAO,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;CAO3E"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import type { ToolResult } from "@chucky.cloud/sdk";
|
|
2
|
+
/**
|
|
3
|
+
* Execute HostBash tool
|
|
4
|
+
*/
|
|
5
|
+
export declare function executeHostBash(input: {
|
|
6
|
+
command: string;
|
|
7
|
+
cwd?: string;
|
|
8
|
+
timeout?: number;
|
|
9
|
+
}, baseCwd: string): Promise<ToolResult>;
|
|
10
|
+
/**
|
|
11
|
+
* Execute HostRead tool
|
|
12
|
+
*/
|
|
13
|
+
export declare function executeHostRead(input: {
|
|
14
|
+
path: string;
|
|
15
|
+
encoding?: BufferEncoding;
|
|
16
|
+
}, baseCwd: string): Promise<ToolResult>;
|
|
17
|
+
/**
|
|
18
|
+
* Execute HostWrite tool
|
|
19
|
+
*/
|
|
20
|
+
export declare function executeHostWrite(input: {
|
|
21
|
+
path: string;
|
|
22
|
+
content: string;
|
|
23
|
+
encoding?: BufferEncoding;
|
|
24
|
+
}, baseCwd: string): Promise<ToolResult>;
|
|
25
|
+
/**
|
|
26
|
+
* Execute HostEdit tool
|
|
27
|
+
*/
|
|
28
|
+
export declare function executeHostEdit(input: {
|
|
29
|
+
path: string;
|
|
30
|
+
old_string: string;
|
|
31
|
+
new_string: string;
|
|
32
|
+
replace_all?: boolean;
|
|
33
|
+
}, baseCwd: string): Promise<ToolResult>;
|
|
34
|
+
/**
|
|
35
|
+
* Execute HostGlob tool
|
|
36
|
+
*/
|
|
37
|
+
export declare function executeHostGlob(input: {
|
|
38
|
+
pattern: string;
|
|
39
|
+
cwd?: string;
|
|
40
|
+
ignore?: string[];
|
|
41
|
+
}, baseCwd: string): Promise<ToolResult>;
|
|
42
|
+
/**
|
|
43
|
+
* Execute HostGrep tool
|
|
44
|
+
*/
|
|
45
|
+
export declare function executeHostGrep(input: {
|
|
46
|
+
pattern: string;
|
|
47
|
+
path?: string;
|
|
48
|
+
glob?: string;
|
|
49
|
+
ignoreCase?: boolean;
|
|
50
|
+
maxResults?: number;
|
|
51
|
+
}, baseCwd: string): Promise<ToolResult>;
|
|
52
|
+
//# sourceMappingURL=host-tools.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"host-tools.d.ts","sourceRoot":"","sources":["../../src/lib/host-tools.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAgBpD;;GAEG;AACH,wBAAsB,eAAe,CACnC,KAAK,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,EAC1D,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,UAAU,CAAC,CAmCrB;AAED;;GAEG;AACH,wBAAsB,eAAe,CACnC,KAAK,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,cAAc,CAAA;CAAE,EAClD,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,UAAU,CAAC,CAmBrB;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CACpC,KAAK,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,cAAc,CAAA;CAAE,EACnE,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,UAAU,CAAC,CAUrB;AAED;;GAEG;AACH,wBAAsB,eAAe,CACnC,KAAK,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,OAAO,CAAA;CAAE,EACtF,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,UAAU,CAAC,CAqCrB;AAED;;GAEG;AACH,wBAAsB,eAAe,CACnC,KAAK,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;CAAE,EAC3D,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,UAAU,CAAC,CAerB;AAED;;GAEG;AACH,wBAAsB,eAAe,CACnC,KAAK,EAAE;IACL,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,EACD,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,UAAU,CAAC,CAiDrB"}
|
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
import { spawn } from "node:child_process";
|
|
2
|
+
import { readFileSync, writeFileSync, existsSync, statSync } from "node:fs";
|
|
3
|
+
import { resolve, join } from "node:path";
|
|
4
|
+
import { glob } from "glob";
|
|
5
|
+
/**
|
|
6
|
+
* Helper to create a text result
|
|
7
|
+
*/
|
|
8
|
+
function textResult(text) {
|
|
9
|
+
return { content: [{ type: "text", text }] };
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Helper to create an error result
|
|
13
|
+
*/
|
|
14
|
+
function errorResult(error) {
|
|
15
|
+
return { content: [{ type: "text", text: `Error: ${error}` }], isError: true };
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Execute HostBash tool
|
|
19
|
+
*/
|
|
20
|
+
export async function executeHostBash(input, baseCwd) {
|
|
21
|
+
const { command, cwd, timeout = 30000 } = input;
|
|
22
|
+
const workingDir = cwd ? resolve(baseCwd, cwd) : baseCwd;
|
|
23
|
+
return new Promise((resolve) => {
|
|
24
|
+
const proc = spawn("bash", ["-c", command], {
|
|
25
|
+
cwd: workingDir,
|
|
26
|
+
env: process.env,
|
|
27
|
+
timeout,
|
|
28
|
+
});
|
|
29
|
+
let stdout = "";
|
|
30
|
+
let stderr = "";
|
|
31
|
+
proc.stdout?.on("data", (data) => {
|
|
32
|
+
stdout += data.toString();
|
|
33
|
+
});
|
|
34
|
+
proc.stderr?.on("data", (data) => {
|
|
35
|
+
stderr += data.toString();
|
|
36
|
+
});
|
|
37
|
+
proc.on("close", (code) => {
|
|
38
|
+
const output = stdout + (stderr ? `\n[stderr]\n${stderr}` : "");
|
|
39
|
+
if (code !== 0) {
|
|
40
|
+
resolve(errorResult(output || `Process exited with code ${code}`));
|
|
41
|
+
}
|
|
42
|
+
else {
|
|
43
|
+
resolve(textResult(output || "(no output)"));
|
|
44
|
+
}
|
|
45
|
+
});
|
|
46
|
+
proc.on("error", (err) => {
|
|
47
|
+
resolve(errorResult(`Failed to execute command: ${err.message}`));
|
|
48
|
+
});
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Execute HostRead tool
|
|
53
|
+
*/
|
|
54
|
+
export async function executeHostRead(input, baseCwd) {
|
|
55
|
+
const { path: filePath, encoding = "utf-8" } = input;
|
|
56
|
+
const fullPath = resolve(baseCwd, filePath);
|
|
57
|
+
if (!existsSync(fullPath)) {
|
|
58
|
+
return errorResult(`File not found: ${fullPath}`);
|
|
59
|
+
}
|
|
60
|
+
const stat = statSync(fullPath);
|
|
61
|
+
if (stat.isDirectory()) {
|
|
62
|
+
return errorResult(`Path is a directory, not a file: ${fullPath}`);
|
|
63
|
+
}
|
|
64
|
+
try {
|
|
65
|
+
const content = readFileSync(fullPath, encoding);
|
|
66
|
+
return textResult(content);
|
|
67
|
+
}
|
|
68
|
+
catch (err) {
|
|
69
|
+
return errorResult(`Failed to read file: ${err.message}`);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Execute HostWrite tool
|
|
74
|
+
*/
|
|
75
|
+
export async function executeHostWrite(input, baseCwd) {
|
|
76
|
+
const { path: filePath, content, encoding = "utf-8" } = input;
|
|
77
|
+
const fullPath = resolve(baseCwd, filePath);
|
|
78
|
+
try {
|
|
79
|
+
writeFileSync(fullPath, content, encoding);
|
|
80
|
+
return textResult(`Successfully wrote ${content.length} characters to ${fullPath}`);
|
|
81
|
+
}
|
|
82
|
+
catch (err) {
|
|
83
|
+
return errorResult(`Failed to write file: ${err.message}`);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Execute HostEdit tool
|
|
88
|
+
*/
|
|
89
|
+
export async function executeHostEdit(input, baseCwd) {
|
|
90
|
+
const { path: filePath, old_string, new_string, replace_all = false } = input;
|
|
91
|
+
const fullPath = resolve(baseCwd, filePath);
|
|
92
|
+
if (!existsSync(fullPath)) {
|
|
93
|
+
return errorResult(`File not found: ${fullPath}`);
|
|
94
|
+
}
|
|
95
|
+
try {
|
|
96
|
+
let content = readFileSync(fullPath, "utf-8");
|
|
97
|
+
if (!content.includes(old_string)) {
|
|
98
|
+
return errorResult(`String not found in file: "${old_string.slice(0, 50)}${old_string.length > 50 ? "..." : ""}"`);
|
|
99
|
+
}
|
|
100
|
+
const occurrences = content.split(old_string).length - 1;
|
|
101
|
+
if (replace_all) {
|
|
102
|
+
content = content.split(old_string).join(new_string);
|
|
103
|
+
}
|
|
104
|
+
else {
|
|
105
|
+
if (occurrences > 1) {
|
|
106
|
+
return errorResult(`Found ${occurrences} occurrences of the string. Set replace_all=true or provide more context to make it unique.`);
|
|
107
|
+
}
|
|
108
|
+
content = content.replace(old_string, new_string);
|
|
109
|
+
}
|
|
110
|
+
writeFileSync(fullPath, content, "utf-8");
|
|
111
|
+
return textResult(`Successfully edited ${fullPath}${replace_all ? ` (${occurrences} replacements)` : ""}`);
|
|
112
|
+
}
|
|
113
|
+
catch (err) {
|
|
114
|
+
return errorResult(`Failed to edit file: ${err.message}`);
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Execute HostGlob tool
|
|
119
|
+
*/
|
|
120
|
+
export async function executeHostGlob(input, baseCwd) {
|
|
121
|
+
const { pattern, cwd, ignore = ["node_modules/**", ".git/**"] } = input;
|
|
122
|
+
const workingDir = cwd ? resolve(baseCwd, cwd) : baseCwd;
|
|
123
|
+
try {
|
|
124
|
+
const files = await glob(pattern, {
|
|
125
|
+
cwd: workingDir,
|
|
126
|
+
ignore,
|
|
127
|
+
nodir: true,
|
|
128
|
+
});
|
|
129
|
+
return textResult(files.length > 0 ? files.join("\n") : "(no files found)");
|
|
130
|
+
}
|
|
131
|
+
catch (err) {
|
|
132
|
+
return errorResult(`Glob search failed: ${err.message}`);
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Execute HostGrep tool
|
|
137
|
+
*/
|
|
138
|
+
export async function executeHostGrep(input, baseCwd) {
|
|
139
|
+
const { pattern, path: searchPath = ".", glob: fileGlob = "**/*", ignoreCase = false, maxResults = 100, } = input;
|
|
140
|
+
const workingDir = resolve(baseCwd, searchPath);
|
|
141
|
+
try {
|
|
142
|
+
const regex = new RegExp(pattern, ignoreCase ? "gi" : "g");
|
|
143
|
+
const files = await glob(fileGlob, {
|
|
144
|
+
cwd: workingDir,
|
|
145
|
+
ignore: ["node_modules/**", ".git/**"],
|
|
146
|
+
nodir: true,
|
|
147
|
+
});
|
|
148
|
+
const results = [];
|
|
149
|
+
for (const file of files) {
|
|
150
|
+
if (results.length >= maxResults)
|
|
151
|
+
break;
|
|
152
|
+
const fullPath = join(workingDir, file);
|
|
153
|
+
try {
|
|
154
|
+
const stat = statSync(fullPath);
|
|
155
|
+
if (stat.size > 1024 * 1024)
|
|
156
|
+
continue; // Skip files > 1MB
|
|
157
|
+
const content = readFileSync(fullPath, "utf-8");
|
|
158
|
+
const lines = content.split("\n");
|
|
159
|
+
for (let i = 0; i < lines.length; i++) {
|
|
160
|
+
if (results.length >= maxResults)
|
|
161
|
+
break;
|
|
162
|
+
if (regex.test(lines[i])) {
|
|
163
|
+
results.push(`${file}:${i + 1}: ${lines[i].trim()}`);
|
|
164
|
+
}
|
|
165
|
+
regex.lastIndex = 0;
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
catch {
|
|
169
|
+
// Skip files that can't be read
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
return textResult(results.length > 0 ? results.join("\n") : "(no matches found)");
|
|
173
|
+
}
|
|
174
|
+
catch (err) {
|
|
175
|
+
return errorResult(`Grep search failed: ${err.message}`);
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
//# sourceMappingURL=host-tools.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"host-tools.js","sourceRoot":"","sources":["../../src/lib/host-tools.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export interface TokenOptions {
|
|
2
|
+
projectId: string;
|
|
3
|
+
hmacSecret: string;
|
|
4
|
+
expiresInSeconds?: number;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* Generate a JWT token for the prompt API
|
|
8
|
+
*/
|
|
9
|
+
export declare function generateToken(options: TokenOptions): string;
|
|
10
|
+
//# sourceMappingURL=token.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"token.d.ts","sourceRoot":"","sources":["../../src/lib/token.ts"],"names":[],"mappings":"AAgBA,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,YAAY,GAAG,MAAM,CAwB3D"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import crypto from "node:crypto";
|
|
2
|
+
/**
|
|
3
|
+
* CLI user ID - hardcoded for developer CLI usage
|
|
4
|
+
*/
|
|
5
|
+
const CLI_USER_ID = "cli-user";
|
|
6
|
+
/**
|
|
7
|
+
* CLI budget - effectively unlimited for developer usage
|
|
8
|
+
*/
|
|
9
|
+
const CLI_BUDGET = {
|
|
10
|
+
ai: 100_000_000, // $100 in microdollars
|
|
11
|
+
compute: 36_000_000, // 10,000 hours in seconds
|
|
12
|
+
window: "hour",
|
|
13
|
+
};
|
|
14
|
+
/**
|
|
15
|
+
* Generate a JWT token for the prompt API
|
|
16
|
+
*/
|
|
17
|
+
export function generateToken(options) {
|
|
18
|
+
const { projectId, hmacSecret, expiresInSeconds = 3600 } = options;
|
|
19
|
+
const now = Math.floor(Date.now() / 1000);
|
|
20
|
+
const payload = {
|
|
21
|
+
sub: CLI_USER_ID,
|
|
22
|
+
iss: projectId,
|
|
23
|
+
exp: now + expiresInSeconds,
|
|
24
|
+
iat: now,
|
|
25
|
+
budget: {
|
|
26
|
+
...CLI_BUDGET,
|
|
27
|
+
windowStart: new Date().toISOString().split("T")[0] + "T00:00:00Z",
|
|
28
|
+
},
|
|
29
|
+
};
|
|
30
|
+
const header = { alg: "HS256", typ: "JWT" };
|
|
31
|
+
const headerB64 = Buffer.from(JSON.stringify(header)).toString("base64url");
|
|
32
|
+
const payloadB64 = Buffer.from(JSON.stringify(payload)).toString("base64url");
|
|
33
|
+
const signature = crypto
|
|
34
|
+
.createHmac("sha256", hmacSecret)
|
|
35
|
+
.update(`${headerB64}.${payloadB64}`)
|
|
36
|
+
.digest("base64url");
|
|
37
|
+
return `${headerB64}.${payloadB64}.${signature}`;
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=token.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"token.js","sourceRoot":"","sources":["../../src/lib/token.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,aAAa,CAAC;AAEjC;;GAEG;AACH,MAAM,WAAW,GAAG,UAAU,CAAC;AAE/B;;GAEG;AACH,MAAM,UAAU,GAAG;IACjB,EAAE,EAAE,WAAW,EAAE,uBAAuB;IACxC,OAAO,EAAE,UAAU,EAAE,0BAA0B;IAC/C,MAAM,EAAE,MAAe;CACxB,CAAC;AAQF;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,OAAqB;IACjD,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,gBAAgB,GAAG,IAAI,EAAE,GAAG,OAAO,CAAC;IAEnE,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;IAC1C,MAAM,OAAO,GAAG;QACd,GAAG,EAAE,WAAW;QAChB,GAAG,EAAE,SAAS;QACd,GAAG,EAAE,GAAG,GAAG,gBAAgB;QAC3B,GAAG,EAAE,GAAG;QACR,MAAM,EAAE;YACN,GAAG,UAAU;YACb,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,YAAY;SACnE;KACF,CAAC;IAEF,MAAM,MAAM,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC;IAC5C,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IAC5E,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IAC9E,MAAM,SAAS,GAAG,MAAM;SACrB,UAAU,CAAC,QAAQ,EAAE,UAAU,CAAC;SAChC,MAAM,CAAC,GAAG,SAAS,IAAI,UAAU,EAAE,CAAC;SACpC,MAAM,CAAC,WAAW,CAAC,CAAC;IAEvB,OAAO,GAAG,SAAS,IAAI,UAAU,IAAI,SAAS,EAAE,CAAC;AACnD,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@chucky.cloud/cli",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.2",
|
|
4
4
|
"description": "CLI for deploying workspaces to Chucky cloud",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -22,9 +22,12 @@
|
|
|
22
22
|
"author": "",
|
|
23
23
|
"license": "MIT",
|
|
24
24
|
"dependencies": {
|
|
25
|
+
"@chucky.cloud/sdk": "^0.2.4",
|
|
26
|
+
"@inquirer/prompts": "^7.0.0",
|
|
25
27
|
"archiver": "^7.0.1",
|
|
26
28
|
"chalk": "^5.3.0",
|
|
27
29
|
"commander": "^12.1.0",
|
|
30
|
+
"glob": "^11.0.0",
|
|
28
31
|
"inquirer": "^12.0.0",
|
|
29
32
|
"ora": "^8.1.0"
|
|
30
33
|
},
|