@serviceme/devtools-cli 0.4.2 → 0.4.4
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/bridgeServer.js +1 -1
- package/dist/cli.js +26 -76
- package/package.json +4 -3
package/dist/bridgeServer.js
CHANGED
|
@@ -213,7 +213,7 @@ function normalizeServicemeError(error, fallbackCode = "internal_error") {
|
|
|
213
213
|
}
|
|
214
214
|
|
|
215
215
|
// src/version.ts
|
|
216
|
-
var SERVICEME_CLI_VERSION = "0.4.
|
|
216
|
+
var SERVICEME_CLI_VERSION = "0.4.4";
|
|
217
217
|
|
|
218
218
|
// src/bridge/handlers/AuthBridgeHandlers.ts
|
|
219
219
|
var import_auth2 = require("@serviceme/devtools-core/auth");
|
package/dist/cli.js
CHANGED
|
@@ -777,7 +777,7 @@ var readline = __toESM(require("readline"));
|
|
|
777
777
|
|
|
778
778
|
// src/version.ts
|
|
779
779
|
var SERVICEME_CLI_NAME = "serviceme";
|
|
780
|
-
var SERVICEME_CLI_VERSION = "0.4.
|
|
780
|
+
var SERVICEME_CLI_VERSION = "0.4.4";
|
|
781
781
|
|
|
782
782
|
// src/bridge/handlers/AuthBridgeHandlers.ts
|
|
783
783
|
var import_auth3 = require("@serviceme/devtools-core/auth");
|
|
@@ -1584,6 +1584,7 @@ var SkillRepoBridgeHandler = class {
|
|
|
1584
1584
|
url: params.url,
|
|
1585
1585
|
branch: params.branch,
|
|
1586
1586
|
name: params.name,
|
|
1587
|
+
...typeof params.enabled === "boolean" ? { enabled: params.enabled } : {},
|
|
1587
1588
|
useProxy: params.useProxy
|
|
1588
1589
|
});
|
|
1589
1590
|
return {
|
|
@@ -2264,26 +2265,17 @@ async function runScheduleCommand(parsed) {
|
|
|
2264
2265
|
function requireWorkspace(parsed) {
|
|
2265
2266
|
const wp = getStringFlag(parsed, "workspacePath");
|
|
2266
2267
|
if (!wp) {
|
|
2267
|
-
throw createServicemeError(
|
|
2268
|
-
"invalid_params",
|
|
2269
|
-
"Missing required flag: --workspacePath"
|
|
2270
|
-
);
|
|
2268
|
+
throw createServicemeError("invalid_params", "Missing required flag: --workspacePath");
|
|
2271
2269
|
}
|
|
2272
2270
|
if (!fs3.existsSync(wp)) {
|
|
2273
|
-
throw createServicemeError(
|
|
2274
|
-
"workspace_not_found",
|
|
2275
|
-
`Workspace path does not exist: ${wp}`
|
|
2276
|
-
);
|
|
2271
|
+
throw createServicemeError("workspace_not_found", `Workspace path does not exist: ${wp}`);
|
|
2277
2272
|
}
|
|
2278
2273
|
return wp;
|
|
2279
2274
|
}
|
|
2280
2275
|
function requireId(parsed) {
|
|
2281
2276
|
const id = getStringFlag(parsed, "id");
|
|
2282
2277
|
if (!id) {
|
|
2283
|
-
throw createServicemeError(
|
|
2284
|
-
"invalid_params",
|
|
2285
|
-
"Missing required flag: --id <task-id>"
|
|
2286
|
-
);
|
|
2278
|
+
throw createServicemeError("invalid_params", "Missing required flag: --id <task-id>");
|
|
2287
2279
|
}
|
|
2288
2280
|
return id;
|
|
2289
2281
|
}
|
|
@@ -2304,10 +2296,7 @@ function parsePayload(parsed, taskType) {
|
|
|
2304
2296
|
try {
|
|
2305
2297
|
return JSON.parse(payloadJson);
|
|
2306
2298
|
} catch {
|
|
2307
|
-
throw createServicemeError(
|
|
2308
|
-
"invalid_payload",
|
|
2309
|
-
"Invalid --payload-json: must be valid JSON"
|
|
2310
|
-
);
|
|
2299
|
+
throw createServicemeError("invalid_payload", "Invalid --payload-json: must be valid JSON");
|
|
2311
2300
|
}
|
|
2312
2301
|
}
|
|
2313
2302
|
switch (taskType) {
|
|
@@ -2356,10 +2345,7 @@ function parsePayload(parsed, taskType) {
|
|
|
2356
2345
|
};
|
|
2357
2346
|
}
|
|
2358
2347
|
default:
|
|
2359
|
-
throw createServicemeError(
|
|
2360
|
-
"invalid_payload",
|
|
2361
|
-
`Unknown task type: ${taskType}`
|
|
2362
|
-
);
|
|
2348
|
+
throw createServicemeError("invalid_payload", `Unknown task type: ${taskType}`);
|
|
2363
2349
|
}
|
|
2364
2350
|
}
|
|
2365
2351
|
function parseScheduleType(schedule) {
|
|
@@ -2369,9 +2355,7 @@ function parseScheduleType(schedule) {
|
|
|
2369
2355
|
function validateSchedule(schedule) {
|
|
2370
2356
|
const scheduleType = parseScheduleType(schedule);
|
|
2371
2357
|
if (scheduleType === "interval") {
|
|
2372
|
-
const match = /^every\s+(\d+)\s*(s|sec|m|min|h|hr|d|day)s?$/i.exec(
|
|
2373
|
-
schedule
|
|
2374
|
-
);
|
|
2358
|
+
const match = /^every\s+(\d+)\s*(s|sec|m|min|h|hr|d|day)s?$/i.exec(schedule);
|
|
2375
2359
|
if (!match) {
|
|
2376
2360
|
throw createServicemeError(
|
|
2377
2361
|
"invalid_schedule",
|
|
@@ -2402,11 +2386,7 @@ function filterFields(obj, fields) {
|
|
|
2402
2386
|
async function handleCreate(parsed) {
|
|
2403
2387
|
const wp = requireWorkspace(parsed);
|
|
2404
2388
|
const name = getStringFlag(parsed, "name");
|
|
2405
|
-
if (!name)
|
|
2406
|
-
throw createServicemeError(
|
|
2407
|
-
"invalid_params",
|
|
2408
|
-
"Missing required flag: --name"
|
|
2409
|
-
);
|
|
2389
|
+
if (!name) throw createServicemeError("invalid_params", "Missing required flag: --name");
|
|
2410
2390
|
const typeStr = getStringFlag(parsed, "type");
|
|
2411
2391
|
if (!typeStr)
|
|
2412
2392
|
throw createServicemeError(
|
|
@@ -2421,11 +2401,7 @@ async function handleCreate(parsed) {
|
|
|
2421
2401
|
);
|
|
2422
2402
|
}
|
|
2423
2403
|
const schedule = getStringFlag(parsed, "schedule");
|
|
2424
|
-
if (!schedule)
|
|
2425
|
-
throw createServicemeError(
|
|
2426
|
-
"invalid_params",
|
|
2427
|
-
"Missing required flag: --schedule"
|
|
2428
|
-
);
|
|
2404
|
+
if (!schedule) throw createServicemeError("invalid_params", "Missing required flag: --schedule");
|
|
2429
2405
|
validateSchedule(schedule);
|
|
2430
2406
|
const payload = parsePayload(parsed, taskType);
|
|
2431
2407
|
const description = getStringFlag(parsed, "description");
|
|
@@ -2471,7 +2447,7 @@ async function handleCreate(parsed) {
|
|
|
2471
2447
|
writeSuccess({ task });
|
|
2472
2448
|
}
|
|
2473
2449
|
function handleList3(parsed) {
|
|
2474
|
-
|
|
2450
|
+
requireWorkspace(parsed);
|
|
2475
2451
|
const mgr = new import_devtools_core11.TaskConfigManager();
|
|
2476
2452
|
const tasks = mgr.listTasks();
|
|
2477
2453
|
const fields = getStringFlag(parsed, "fields");
|
|
@@ -2486,33 +2462,24 @@ function handleList3(parsed) {
|
|
|
2486
2462
|
writeSuccess({ tasks: result, total: tasks.length });
|
|
2487
2463
|
}
|
|
2488
2464
|
function handleGet(parsed) {
|
|
2489
|
-
|
|
2465
|
+
requireWorkspace(parsed);
|
|
2490
2466
|
const id = requireId(parsed);
|
|
2491
2467
|
const mgr = new import_devtools_core11.TaskConfigManager();
|
|
2492
2468
|
const task = mgr.getTask(id);
|
|
2493
2469
|
if (!task) {
|
|
2494
|
-
throw createServicemeError(
|
|
2495
|
-
"task_not_found",
|
|
2496
|
-
`Task '${id}' does not exist in this workspace`
|
|
2497
|
-
);
|
|
2470
|
+
throw createServicemeError("task_not_found", `Task '${id}' does not exist in this workspace`);
|
|
2498
2471
|
}
|
|
2499
2472
|
const fields = getStringFlag(parsed, "fields");
|
|
2500
|
-
const result = filterFields(
|
|
2501
|
-
task,
|
|
2502
|
-
fields
|
|
2503
|
-
);
|
|
2473
|
+
const result = filterFields(task, fields);
|
|
2504
2474
|
writeSuccess({ task: result });
|
|
2505
2475
|
}
|
|
2506
2476
|
async function handleEdit(parsed) {
|
|
2507
|
-
|
|
2477
|
+
requireWorkspace(parsed);
|
|
2508
2478
|
const id = requireId(parsed);
|
|
2509
2479
|
const mgr = new import_devtools_core11.TaskConfigManager();
|
|
2510
2480
|
const existing = mgr.getTask(id);
|
|
2511
2481
|
if (!existing) {
|
|
2512
|
-
throw createServicemeError(
|
|
2513
|
-
"task_not_found",
|
|
2514
|
-
`Task '${id}' does not exist in this workspace`
|
|
2515
|
-
);
|
|
2482
|
+
throw createServicemeError("task_not_found", `Task '${id}' does not exist in this workspace`);
|
|
2516
2483
|
}
|
|
2517
2484
|
const input = {};
|
|
2518
2485
|
const name = getStringFlag(parsed, "name");
|
|
@@ -2534,10 +2501,7 @@ async function handleEdit(parsed) {
|
|
|
2534
2501
|
try {
|
|
2535
2502
|
input.payload = JSON.parse(payloadJson);
|
|
2536
2503
|
} catch {
|
|
2537
|
-
throw createServicemeError(
|
|
2538
|
-
"invalid_payload",
|
|
2539
|
-
"Invalid --payload-json: must be valid JSON"
|
|
2540
|
-
);
|
|
2504
|
+
throw createServicemeError("invalid_payload", "Invalid --payload-json: must be valid JSON");
|
|
2541
2505
|
}
|
|
2542
2506
|
}
|
|
2543
2507
|
if (getBooleanFlag(parsed, "dry-run")) {
|
|
@@ -2554,16 +2518,13 @@ async function handleEdit(parsed) {
|
|
|
2554
2518
|
writeSuccess({ task });
|
|
2555
2519
|
}
|
|
2556
2520
|
function handleDelete(parsed) {
|
|
2557
|
-
|
|
2521
|
+
requireWorkspace(parsed);
|
|
2558
2522
|
const id = requireId(parsed);
|
|
2559
2523
|
requireConfirmation(parsed);
|
|
2560
2524
|
const mgr = new import_devtools_core11.TaskConfigManager();
|
|
2561
2525
|
const existing = mgr.getTask(id);
|
|
2562
2526
|
if (!existing) {
|
|
2563
|
-
throw createServicemeError(
|
|
2564
|
-
"task_not_found",
|
|
2565
|
-
`Task '${id}' does not exist in this workspace`
|
|
2566
|
-
);
|
|
2527
|
+
throw createServicemeError("task_not_found", `Task '${id}' does not exist in this workspace`);
|
|
2567
2528
|
}
|
|
2568
2529
|
if (getBooleanFlag(parsed, "dry-run")) {
|
|
2569
2530
|
writeSuccess({ action: "delete", task: existing });
|
|
@@ -2573,37 +2534,28 @@ function handleDelete(parsed) {
|
|
|
2573
2534
|
writeSuccess({ id, name: existing.name });
|
|
2574
2535
|
}
|
|
2575
2536
|
function handleToggle(parsed) {
|
|
2576
|
-
|
|
2537
|
+
requireWorkspace(parsed);
|
|
2577
2538
|
const id = requireId(parsed);
|
|
2578
2539
|
const enabledStr = getStringFlag(parsed, "enabled");
|
|
2579
2540
|
if (enabledStr === void 0) {
|
|
2580
|
-
throw createServicemeError(
|
|
2581
|
-
"invalid_params",
|
|
2582
|
-
"Missing required flag: --enabled <true|false>"
|
|
2583
|
-
);
|
|
2541
|
+
throw createServicemeError("invalid_params", "Missing required flag: --enabled <true|false>");
|
|
2584
2542
|
}
|
|
2585
2543
|
const enabled = enabledStr !== "false";
|
|
2586
2544
|
const mgr = new import_devtools_core11.TaskConfigManager();
|
|
2587
2545
|
const existing = mgr.getTask(id);
|
|
2588
2546
|
if (!existing) {
|
|
2589
|
-
throw createServicemeError(
|
|
2590
|
-
"task_not_found",
|
|
2591
|
-
`Task '${id}' does not exist in this workspace`
|
|
2592
|
-
);
|
|
2547
|
+
throw createServicemeError("task_not_found", `Task '${id}' does not exist in this workspace`);
|
|
2593
2548
|
}
|
|
2594
2549
|
const task = mgr.toggleTask(id, enabled);
|
|
2595
2550
|
writeSuccess({ task });
|
|
2596
2551
|
}
|
|
2597
2552
|
async function handleTrigger(parsed) {
|
|
2598
|
-
|
|
2553
|
+
requireWorkspace(parsed);
|
|
2599
2554
|
const id = requireId(parsed);
|
|
2600
2555
|
const mgr = new import_devtools_core11.TaskConfigManager();
|
|
2601
2556
|
const task = mgr.getTask(id);
|
|
2602
2557
|
if (!task) {
|
|
2603
|
-
throw createServicemeError(
|
|
2604
|
-
"task_not_found",
|
|
2605
|
-
`Task '${id}' does not exist in this workspace`
|
|
2606
|
-
);
|
|
2558
|
+
throw createServicemeError("task_not_found", `Task '${id}' does not exist in this workspace`);
|
|
2607
2559
|
}
|
|
2608
2560
|
const startedAt = (/* @__PURE__ */ new Date()).toISOString();
|
|
2609
2561
|
const executionPayload = (0, import_devtools_core11.resolveTaskExecutionPayload)(
|
|
@@ -2628,16 +2580,14 @@ async function handleTrigger(parsed) {
|
|
|
2628
2580
|
writeSuccess({ log });
|
|
2629
2581
|
}
|
|
2630
2582
|
function handleLogs(parsed) {
|
|
2631
|
-
|
|
2583
|
+
requireWorkspace(parsed);
|
|
2632
2584
|
const taskId = getStringFlag(parsed, "task-id");
|
|
2633
2585
|
const limitStr = getStringFlag(parsed, "limit");
|
|
2634
2586
|
const limit = limitStr ? Math.min(Number(limitStr), 200) : 20;
|
|
2635
2587
|
const fields = getStringFlag(parsed, "fields");
|
|
2636
2588
|
const logMgr = new import_devtools_core11.TaskLogManager();
|
|
2637
2589
|
const { logs, total } = logMgr.getLogs({ taskId, limit });
|
|
2638
|
-
const result = logs.map(
|
|
2639
|
-
(l) => filterFields(l, fields)
|
|
2640
|
-
);
|
|
2590
|
+
const result = logs.map((l) => filterFields(l, fields));
|
|
2641
2591
|
writeSuccess({ logs: result, total });
|
|
2642
2592
|
}
|
|
2643
2593
|
function writeDescribe(action) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@serviceme/devtools-cli",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.4",
|
|
4
4
|
"description": "Unified SERVICEME CLI for automation, project scaffolding, and bridge-based tooling.",
|
|
5
5
|
"license": "SEE LICENSE IN LICENSE.md",
|
|
6
6
|
"repository": {
|
|
@@ -39,8 +39,9 @@
|
|
|
39
39
|
"registry": "https://registry.npmjs.org/"
|
|
40
40
|
},
|
|
41
41
|
"dependencies": {
|
|
42
|
-
"@serviceme/devtools-core": "0.4.
|
|
43
|
-
"@serviceme/
|
|
42
|
+
"@serviceme/devtools-core": "0.4.4",
|
|
43
|
+
"@serviceme/shared": "0.0.1",
|
|
44
|
+
"@serviceme/devtools-protocol": "0.4.4"
|
|
44
45
|
},
|
|
45
46
|
"devDependencies": {
|
|
46
47
|
"@types/node": "^24",
|