@zixt/host 0.0.132 → 0.0.134
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 +107 -6
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -28,7 +28,7 @@ import { homedir as homedir4 } from "node:os";
|
|
|
28
28
|
// package.json
|
|
29
29
|
var package_default = {
|
|
30
30
|
name: "@zixt/host",
|
|
31
|
-
version: "0.0.
|
|
31
|
+
version: "0.0.134",
|
|
32
32
|
type: "module",
|
|
33
33
|
exports: {
|
|
34
34
|
".": "./src/client.ts",
|
|
@@ -19658,6 +19658,7 @@ var TestWebhookDeliveryRequest = external_exports.object({
|
|
|
19658
19658
|
|
|
19659
19659
|
// ../../packages/contracts/src/manager.ts
|
|
19660
19660
|
var MANAGER_DEFAULT_MODEL = "gpt-5.6-luna";
|
|
19661
|
+
var MANAGER_DEFAULT_PORTRAIT = 23;
|
|
19661
19662
|
var MANAGER_DISPLAY_NAME_MAX = 60;
|
|
19662
19663
|
var MANAGER_INSTRUCTIONS_MAX = 2e4;
|
|
19663
19664
|
var CONVERSATION_MESSAGE_MAX = 1e5;
|
|
@@ -19687,10 +19688,12 @@ var ManagerConfigProjection = external_exports.object({
|
|
|
19687
19688
|
*/
|
|
19688
19689
|
slack: external_exports.object({ answerMentions: external_exports.boolean(), answerDirectMessages: external_exports.boolean() }).strict(),
|
|
19689
19690
|
/**
|
|
19690
|
-
* Index into the bundled
|
|
19691
|
-
* speaks;
|
|
19691
|
+
* Index into the unified bundled portrait set, shown wherever the Manager
|
|
19692
|
+
* speaks; a new organization starts on MANAGER_DEFAULT_PORTRAIT. The bound
|
|
19693
|
+
* keeps headroom above the current set so a client on a newer build is
|
|
19694
|
+
* never rejected by a server that has not shipped the newer artwork yet.
|
|
19692
19695
|
*/
|
|
19693
|
-
portrait: external_exports.number().int().min(0).max(63).default(
|
|
19696
|
+
portrait: external_exports.number().int().min(0).max(63).default(MANAGER_DEFAULT_PORTRAIT),
|
|
19694
19697
|
revision: external_exports.number().int().min(0),
|
|
19695
19698
|
updatedAt: external_exports.string().nullable()
|
|
19696
19699
|
}).strict();
|
|
@@ -20552,6 +20555,11 @@ var UploadAgentAvatarRequest = external_exports.object({
|
|
|
20552
20555
|
mediaType: AgentAvatarMediaType,
|
|
20553
20556
|
data: external_exports.string().min(4).max(Math.ceil(AGENT_AVATAR_MAX_BYTES * 4 / 3) + 4)
|
|
20554
20557
|
}).strict();
|
|
20558
|
+
var SelectAgentPortraitRequest = external_exports.object({ portrait: external_exports.number().int().min(0).max(63) }).strict();
|
|
20559
|
+
var SetAgentAvatarRequest = external_exports.union([
|
|
20560
|
+
UploadAgentAvatarRequest,
|
|
20561
|
+
SelectAgentPortraitRequest
|
|
20562
|
+
]);
|
|
20555
20563
|
var UploadAgentAvatarResponse = external_exports.object({ agent: Agent, avatarAssetId: AgentAvatarId }).strict();
|
|
20556
20564
|
var UpdateAgentRequest = external_exports.object({
|
|
20557
20565
|
name: Agent.shape.name,
|
|
@@ -22516,8 +22524,8 @@ var CompanySetupFunnel = external_exports.object({
|
|
|
22516
22524
|
teammatesCreated: external_exports.number().int().min(0),
|
|
22517
22525
|
stepsSkipped: external_exports.number().int().min(0)
|
|
22518
22526
|
});
|
|
22519
|
-
var
|
|
22520
|
-
var ALL_PORTRAITS = Array.from({ length:
|
|
22527
|
+
var PORTRAIT_COUNT = 32;
|
|
22528
|
+
var ALL_PORTRAITS = Array.from({ length: PORTRAIT_COUNT }, (_, index) => index);
|
|
22521
22529
|
|
|
22522
22530
|
// ../../packages/contracts/src/product-feedback.ts
|
|
22523
22531
|
var ProductFeedbackKind = external_exports.enum(["frustration", "missing_capability", "feature_request"]);
|
|
@@ -38113,6 +38121,56 @@ var TOOLS = [
|
|
|
38113
38121
|
required: ["name", "instructions", "cadence_kind"]
|
|
38114
38122
|
}
|
|
38115
38123
|
},
|
|
38124
|
+
{
|
|
38125
|
+
name: "propose_automations",
|
|
38126
|
+
description: 'Recommend recurring Automations WITHOUT creating them: the set is recorded for an organization Admin, who reviews it under Needs attention and on the Automations page and creates or dismisses each item; nothing runs until a person approves. Use this whenever YOU conclude recurring checks would help: after exploring an inbox, an ad account, or a monitoring stack, or after noticing a pattern in your work. Use schedule_task instead only for recurring work this task explicitly asked you to set up. Give each item an honest one-line why. For a system that pushes alerts (Grafana, Sentry, an uptime monitor), propose trigger "webhook" with its name instead of a schedule; the Admin receives the endpoint and secret to paste into it, never you. An empty automations list honestly records that nothing recurring is needed.',
|
|
38127
|
+
inputSchema: {
|
|
38128
|
+
type: "object",
|
|
38129
|
+
properties: {
|
|
38130
|
+
summary: {
|
|
38131
|
+
type: "string",
|
|
38132
|
+
minLength: 1,
|
|
38133
|
+
maxLength: 600,
|
|
38134
|
+
description: "One line: what you explored or noticed, and why these checks."
|
|
38135
|
+
},
|
|
38136
|
+
automations: {
|
|
38137
|
+
type: "array",
|
|
38138
|
+
maxItems: 10,
|
|
38139
|
+
items: {
|
|
38140
|
+
type: "object",
|
|
38141
|
+
properties: {
|
|
38142
|
+
name: { type: "string", minLength: 1, maxLength: 120 },
|
|
38143
|
+
instructions: {
|
|
38144
|
+
type: "string",
|
|
38145
|
+
minLength: 1,
|
|
38146
|
+
maxLength: 1e4,
|
|
38147
|
+
description: "What each run should do; a run with nothing to do ends quietly."
|
|
38148
|
+
},
|
|
38149
|
+
why: {
|
|
38150
|
+
type: "string",
|
|
38151
|
+
minLength: 1,
|
|
38152
|
+
maxLength: 300,
|
|
38153
|
+
description: "Honest one line: why this check helps this business."
|
|
38154
|
+
},
|
|
38155
|
+
trigger: {
|
|
38156
|
+
type: "string",
|
|
38157
|
+
enum: ["schedule", "webhook"],
|
|
38158
|
+
description: "schedule = a cadence below; webhook = an external system pushes."
|
|
38159
|
+
},
|
|
38160
|
+
...CADENCE_PROPS,
|
|
38161
|
+
webhook_source: {
|
|
38162
|
+
type: "string",
|
|
38163
|
+
maxLength: 120,
|
|
38164
|
+
description: 'webhook-only: the system expected to call (e.g. "Grafana").'
|
|
38165
|
+
}
|
|
38166
|
+
},
|
|
38167
|
+
required: ["name", "instructions", "why", "trigger"]
|
|
38168
|
+
}
|
|
38169
|
+
}
|
|
38170
|
+
},
|
|
38171
|
+
required: ["summary", "automations"]
|
|
38172
|
+
}
|
|
38173
|
+
},
|
|
38116
38174
|
{
|
|
38117
38175
|
name: "list_schedules",
|
|
38118
38176
|
description: "List your own schedules (id, name, cadence, enabled, next run).",
|
|
@@ -38424,6 +38482,49 @@ function opFor(name, args) {
|
|
|
38424
38482
|
...endsAt ? { endsAt } : {}
|
|
38425
38483
|
};
|
|
38426
38484
|
}
|
|
38485
|
+
case "propose_automations": {
|
|
38486
|
+
const rawItems = args["automations"];
|
|
38487
|
+
if (!Array.isArray(rawItems)) throw new Error("missing required argument `automations`");
|
|
38488
|
+
return {
|
|
38489
|
+
kind: "automation.propose",
|
|
38490
|
+
summary: str("summary"),
|
|
38491
|
+
items: rawItems.map((raw, index) => {
|
|
38492
|
+
if (typeof raw !== "object" || raw === null) {
|
|
38493
|
+
throw new Error(`automations[${index}] must be an object`);
|
|
38494
|
+
}
|
|
38495
|
+
const item = raw;
|
|
38496
|
+
const field = (key) => {
|
|
38497
|
+
const value = item[key];
|
|
38498
|
+
if (typeof value !== "string" || value.length === 0) {
|
|
38499
|
+
throw new Error(`automations[${index}] is missing \`${key}\``);
|
|
38500
|
+
}
|
|
38501
|
+
return value;
|
|
38502
|
+
};
|
|
38503
|
+
const trigger = field("trigger");
|
|
38504
|
+
if (trigger === "webhook") {
|
|
38505
|
+
const source = item["webhook_source"];
|
|
38506
|
+
return {
|
|
38507
|
+
name: field("name"),
|
|
38508
|
+
instructions: field("instructions"),
|
|
38509
|
+
why: field("why"),
|
|
38510
|
+
trigger: {
|
|
38511
|
+
kind: "webhook",
|
|
38512
|
+
source: typeof source === "string" && source ? source : null
|
|
38513
|
+
}
|
|
38514
|
+
};
|
|
38515
|
+
}
|
|
38516
|
+
if (trigger !== "schedule") {
|
|
38517
|
+
throw new Error(`automations[${index}] trigger must be schedule | webhook`);
|
|
38518
|
+
}
|
|
38519
|
+
return {
|
|
38520
|
+
name: field("name"),
|
|
38521
|
+
instructions: field("instructions"),
|
|
38522
|
+
why: field("why"),
|
|
38523
|
+
trigger: { kind: "schedule", cadence: cadenceFrom(item) }
|
|
38524
|
+
};
|
|
38525
|
+
})
|
|
38526
|
+
};
|
|
38527
|
+
}
|
|
38427
38528
|
case "list_schedules":
|
|
38428
38529
|
return { kind: "schedule.list" };
|
|
38429
38530
|
case "cancel_schedule":
|