@meltstudio/meltctl 5.28.0 → 5.29.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/dist/index.js +97 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -7499,7 +7499,7 @@ var CLI_VERSION;
|
|
|
7499
7499
|
var init_version = __esm({
|
|
7500
7500
|
"src/utils/version.ts"() {
|
|
7501
7501
|
"use strict";
|
|
7502
|
-
CLI_VERSION = "5.
|
|
7502
|
+
CLI_VERSION = "5.29.0";
|
|
7503
7503
|
}
|
|
7504
7504
|
});
|
|
7505
7505
|
|
|
@@ -28047,6 +28047,35 @@ function createEndpointChecksResource(config2) {
|
|
|
28047
28047
|
}
|
|
28048
28048
|
return data.device;
|
|
28049
28049
|
},
|
|
28050
|
+
/**
|
|
28051
|
+
* People exempt from the endpoint check (client-managed machines).
|
|
28052
|
+
* Active ones only, unless `includeInactive`. Manager-gated.
|
|
28053
|
+
*/
|
|
28054
|
+
async listExemptions(includeInactive = false) {
|
|
28055
|
+
const query = includeInactive ? "?all=true" : "";
|
|
28056
|
+
const { data, status } = await apiFetch(config2, `/endpoint-checks/exemptions${query}`);
|
|
28057
|
+
if (status === 403) {
|
|
28058
|
+
throw new Error("Access denied. Only Team Managers can list endpoint exemptions.");
|
|
28059
|
+
}
|
|
28060
|
+
if (status !== 200) {
|
|
28061
|
+
throw new Error(data.error ?? `Failed to list endpoint exemptions (${status})`);
|
|
28062
|
+
}
|
|
28063
|
+
return data;
|
|
28064
|
+
},
|
|
28065
|
+
/**
|
|
28066
|
+
* Set (`active: true`) or clear (`active: false`) a person's exemption.
|
|
28067
|
+
* Clearing keeps the row. Manager-gated.
|
|
28068
|
+
*/
|
|
28069
|
+
async setExemption(input) {
|
|
28070
|
+
const { data, status } = await apiFetch(config2, "/endpoint-checks/exemptions", { method: "PUT", body: JSON.stringify(input) });
|
|
28071
|
+
if (status === 403) {
|
|
28072
|
+
throw new Error("Access denied. Only Team Managers can change endpoint exemptions.");
|
|
28073
|
+
}
|
|
28074
|
+
if (status !== 200) {
|
|
28075
|
+
throw new Error(data.error ?? `Failed to set endpoint exemption (${status})`);
|
|
28076
|
+
}
|
|
28077
|
+
return data.exemption;
|
|
28078
|
+
},
|
|
28050
28079
|
/** Weekly Slack reminder settings (#651). Manager-gated. */
|
|
28051
28080
|
async getReminderSettings() {
|
|
28052
28081
|
const { data, status } = await apiFetch(config2, "/endpoint-reminders/settings");
|
|
@@ -55349,6 +55378,35 @@ function createEndpointChecksResource2(config2) {
|
|
|
55349
55378
|
}
|
|
55350
55379
|
return data.device;
|
|
55351
55380
|
},
|
|
55381
|
+
/**
|
|
55382
|
+
* People exempt from the endpoint check (client-managed machines).
|
|
55383
|
+
* Active ones only, unless `includeInactive`. Manager-gated.
|
|
55384
|
+
*/
|
|
55385
|
+
async listExemptions(includeInactive = false) {
|
|
55386
|
+
const query = includeInactive ? "?all=true" : "";
|
|
55387
|
+
const { data, status } = await apiFetch2(config2, `/endpoint-checks/exemptions${query}`);
|
|
55388
|
+
if (status === 403) {
|
|
55389
|
+
throw new Error("Access denied. Only Team Managers can list endpoint exemptions.");
|
|
55390
|
+
}
|
|
55391
|
+
if (status !== 200) {
|
|
55392
|
+
throw new Error(data.error ?? `Failed to list endpoint exemptions (${status})`);
|
|
55393
|
+
}
|
|
55394
|
+
return data;
|
|
55395
|
+
},
|
|
55396
|
+
/**
|
|
55397
|
+
* Set (`active: true`) or clear (`active: false`) a person's exemption.
|
|
55398
|
+
* Clearing keeps the row. Manager-gated.
|
|
55399
|
+
*/
|
|
55400
|
+
async setExemption(input) {
|
|
55401
|
+
const { data, status } = await apiFetch2(config2, "/endpoint-checks/exemptions", { method: "PUT", body: JSON.stringify(input) });
|
|
55402
|
+
if (status === 403) {
|
|
55403
|
+
throw new Error("Access denied. Only Team Managers can change endpoint exemptions.");
|
|
55404
|
+
}
|
|
55405
|
+
if (status !== 200) {
|
|
55406
|
+
throw new Error(data.error ?? `Failed to set endpoint exemption (${status})`);
|
|
55407
|
+
}
|
|
55408
|
+
return data.exemption;
|
|
55409
|
+
},
|
|
55352
55410
|
/** Weekly Slack reminder settings (#651). Manager-gated. */
|
|
55353
55411
|
async getReminderSettings() {
|
|
55354
55412
|
const { data, status } = await apiFetch2(config2, "/endpoint-reminders/settings");
|
|
@@ -56942,6 +57000,26 @@ var setEndpointDeviceStatusInputSchema = external_exports.object(setStatusShape)
|
|
|
56942
57000
|
async function setEndpointDeviceStatus(client, input) {
|
|
56943
57001
|
return safe(() => client.endpointChecks.setDeviceStatus(input));
|
|
56944
57002
|
}
|
|
57003
|
+
var listExemptionsShape = {
|
|
57004
|
+
includeInactive: external_exports.boolean().optional().describe("Also list cleared exemptions (kept for history). Defaults to active only.")
|
|
57005
|
+
};
|
|
57006
|
+
var listEndpointExemptionsInputSchema = external_exports.object(listExemptionsShape);
|
|
57007
|
+
async function listEndpointExemptions(client, input) {
|
|
57008
|
+
return safe(() => client.endpointChecks.listExemptions(input.includeInactive ?? false));
|
|
57009
|
+
}
|
|
57010
|
+
var setExemptionShape = {
|
|
57011
|
+
email: external_exports.string().min(1).describe("The person's @meltstudio.co email."),
|
|
57012
|
+
active: external_exports.boolean().describe("true sets the exemption; false clears it (the row is kept)."),
|
|
57013
|
+
reason: external_exports.enum(["client_managed"]).optional().describe(
|
|
57014
|
+
"client_managed = works on a machine the client provides and verifies itself. The default."
|
|
57015
|
+
),
|
|
57016
|
+
clientName: external_exports.string().max(500).optional().describe('The client whose machine it is. Omit to keep the current one; "" clears it.'),
|
|
57017
|
+
note: external_exports.string().max(500).optional().describe('Optional note, e.g. "client runs SOC 2 checks". Omit to keep the current one.')
|
|
57018
|
+
};
|
|
57019
|
+
var setEndpointExemptionInputSchema = external_exports.object(setExemptionShape);
|
|
57020
|
+
async function setEndpointExemption(client, input) {
|
|
57021
|
+
return safe(() => client.endpointChecks.setExemption(input));
|
|
57022
|
+
}
|
|
56945
57023
|
function registerEndpointCheckTools(server, getClient2) {
|
|
56946
57024
|
server.registerTool(
|
|
56947
57025
|
"submit_endpoint_check",
|
|
@@ -56988,6 +57066,24 @@ function registerEndpointCheckTools(server, getClient2) {
|
|
|
56988
57066
|
},
|
|
56989
57067
|
withClientArgs(getClient2, setEndpointDeviceStatus)
|
|
56990
57068
|
);
|
|
57069
|
+
server.registerTool(
|
|
57070
|
+
"list_endpoint_exemptions",
|
|
57071
|
+
{
|
|
57072
|
+
title: "List endpoint check exemptions (manager)",
|
|
57073
|
+
description: "Lists the people exempt from the endpoint check because they work on a client-managed machine the client verifies itself (SOC 2 and similar): email, reason, client name, note, and who set it and when. Active ones only unless includeInactive. Exempt people get no reminders and are left out of the overdue and coverage numbers. Manager-gated.",
|
|
57074
|
+
inputSchema: listExemptionsShape
|
|
57075
|
+
},
|
|
57076
|
+
withClientArgs(getClient2, listEndpointExemptions)
|
|
57077
|
+
);
|
|
57078
|
+
server.registerTool(
|
|
57079
|
+
"set_endpoint_exemption",
|
|
57080
|
+
{
|
|
57081
|
+
title: "Set or clear an endpoint check exemption (manager)",
|
|
57082
|
+
description: "Exempts a person from Melt's endpoint check (active true) because they work on a client-managed machine, or clears the exemption (active false; the row is kept for history). While active they get no weekly reminder DM, are never escalated and don't count as overdue on the dashboard. Any checks they already submitted stay. Pass the client's name when known. Manager-gated.",
|
|
57083
|
+
inputSchema: setExemptionShape
|
|
57084
|
+
},
|
|
57085
|
+
withClientArgs(getClient2, setEndpointExemption)
|
|
57086
|
+
);
|
|
56991
57087
|
}
|
|
56992
57088
|
async function getSupportEffort(client, input) {
|
|
56993
57089
|
return safe(async () => {
|
package/package.json
CHANGED