@zixt/host 0.0.141 → 0.0.143
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 +189 -3
- 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.143",
|
|
32
32
|
type: "module",
|
|
33
33
|
exports: {
|
|
34
34
|
".": "./src/client.ts",
|
|
@@ -14713,7 +14713,11 @@ var ID_PREFIXES = {
|
|
|
14713
14713
|
/** One durable set of teammate-proposed Automations awaiting an Admin (OB-12). */
|
|
14714
14714
|
automationProposalSet: "aps",
|
|
14715
14715
|
/** One product-feedback report passed to the Zixt team (MG-23). */
|
|
14716
|
-
productFeedback: "pfb"
|
|
14716
|
+
productFeedback: "pfb",
|
|
14717
|
+
/** One shared company fact every teammate and the Manager read (CP-1). */
|
|
14718
|
+
companyProfileEntry: "cpe",
|
|
14719
|
+
/** A bounded, validated image of the organization's own logo (CP-3). */
|
|
14720
|
+
companyLogo: "clg"
|
|
14717
14721
|
};
|
|
14718
14722
|
var idPattern = (prefix) => new RegExp(`^${prefix}_[0-9a-f]{32}$`);
|
|
14719
14723
|
function newId(prefix) {
|
|
@@ -14752,6 +14756,11 @@ var TaskArtifactId = idSchema(ID_PREFIXES.artifact, "task artifact id");
|
|
|
14752
14756
|
var MemoryId = idSchema(ID_PREFIXES.memory, "memory id");
|
|
14753
14757
|
var ManagerId = idSchema(ID_PREFIXES.manager, "manager id");
|
|
14754
14758
|
var ManagerMemoryId = idSchema(ID_PREFIXES.managerMemory, "manager memory id");
|
|
14759
|
+
var CompanyProfileEntryId = idSchema(
|
|
14760
|
+
ID_PREFIXES.companyProfileEntry,
|
|
14761
|
+
"company profile entry id"
|
|
14762
|
+
);
|
|
14763
|
+
var CompanyLogoId = idSchema(ID_PREFIXES.companyLogo, "company logo id");
|
|
14755
14764
|
var ConversationId = idSchema(ID_PREFIXES.conversation, "conversation id");
|
|
14756
14765
|
var ConversationEventId = idSchema(ID_PREFIXES.conversationEvent, "conversation event id");
|
|
14757
14766
|
var ManagerIntegrationActionId = idSchema(
|
|
@@ -15799,6 +15808,87 @@ var Host = external_exports.object({
|
|
|
15799
15808
|
createdAt: IsoDate2
|
|
15800
15809
|
});
|
|
15801
15810
|
|
|
15811
|
+
// ../../packages/contracts/src/company-profile.ts
|
|
15812
|
+
var CompanyProfileSection = external_exports.enum([
|
|
15813
|
+
/** What the business is and what it sells. */
|
|
15814
|
+
"identity",
|
|
15815
|
+
/** Who it serves. */
|
|
15816
|
+
"customers",
|
|
15817
|
+
/** How the world reaches it: phone, addresses, inboxes, social accounts. */
|
|
15818
|
+
"contact",
|
|
15819
|
+
/** How it runs: hours, locations, timezone, languages, size. */
|
|
15820
|
+
"operating",
|
|
15821
|
+
/** How it sounds and looks: voice, naming, colors. */
|
|
15822
|
+
"brand",
|
|
15823
|
+
/** Who it competes with and what those competitors do (CP-4). */
|
|
15824
|
+
"market"
|
|
15825
|
+
]);
|
|
15826
|
+
var CompanyProfileSource = external_exports.enum([
|
|
15827
|
+
/** A person typed it, in settings or in the setup interview. */
|
|
15828
|
+
"person",
|
|
15829
|
+
/** The Manager kept it from a Conversation. */
|
|
15830
|
+
"manager",
|
|
15831
|
+
/** An AI teammate kept it during a Task. */
|
|
15832
|
+
"teammate",
|
|
15833
|
+
/** The company-setup interview recorded it from the answers. */
|
|
15834
|
+
"setup",
|
|
15835
|
+
/** Zixt read it on the web while researching the company's own site (CP-3). */
|
|
15836
|
+
"research"
|
|
15837
|
+
]);
|
|
15838
|
+
var CompanyProfileTrust = external_exports.enum(["internal", "external"]);
|
|
15839
|
+
var COMPANY_PROFILE_SUBJECT_MAX = 60;
|
|
15840
|
+
var COMPANY_PROFILE_TEXT_MAX = 300;
|
|
15841
|
+
var COMPANY_PROFILE_MAX_ENTRIES = 80;
|
|
15842
|
+
var COMPANY_PROFILE_SOURCE_URL_MAX = 500;
|
|
15843
|
+
var CompanyProfileEntry = external_exports.object({
|
|
15844
|
+
id: CompanyProfileEntryId,
|
|
15845
|
+
section: CompanyProfileSection,
|
|
15846
|
+
/** Short normalized topic; (section, subject) is the deduplication key. */
|
|
15847
|
+
subject: external_exports.string().trim().min(1).max(COMPANY_PROFILE_SUBJECT_MAX),
|
|
15848
|
+
text: external_exports.string().trim().min(1).max(COMPANY_PROFILE_TEXT_MAX),
|
|
15849
|
+
source: CompanyProfileSource,
|
|
15850
|
+
trust: CompanyProfileTrust,
|
|
15851
|
+
/** The AI teammate that wrote it, when a teammate did. */
|
|
15852
|
+
authorAgentId: AgentId.nullable(),
|
|
15853
|
+
/** The member whose authority the write carried, when a person's did. */
|
|
15854
|
+
authorMemberId: MemberId.nullable(),
|
|
15855
|
+
/** The page a research row came from, for the person checking it. */
|
|
15856
|
+
sourceUrl: external_exports.string().max(COMPANY_PROFILE_SOURCE_URL_MAX).nullable(),
|
|
15857
|
+
/**
|
|
15858
|
+
* A person read this row and said it is right. Confirming is what turns a
|
|
15859
|
+
* researched claim into an organization fact; it never rewrites the text,
|
|
15860
|
+
* so the trail from "found on the web" to "we agreed" stays readable.
|
|
15861
|
+
*/
|
|
15862
|
+
confirmedAt: IsoDate.nullable(),
|
|
15863
|
+
confirmedByMemberId: MemberId.nullable(),
|
|
15864
|
+
createdAt: IsoDate,
|
|
15865
|
+
updatedAt: IsoDate
|
|
15866
|
+
}).strict();
|
|
15867
|
+
var CompanyProfileHeader = external_exports.object({
|
|
15868
|
+
/** The company's own website, as the person gave it, normalized to https. */
|
|
15869
|
+
websiteUrl: external_exports.string().max(COMPANY_PROFILE_SOURCE_URL_MAX).nullable(),
|
|
15870
|
+
/** Verified image bytes Zixt stores itself; never a hotlink to their site. */
|
|
15871
|
+
logoAssetId: CompanyLogoId.nullable(),
|
|
15872
|
+
/** Where the logo was found, shown beside it so a person can check. */
|
|
15873
|
+
logoSourceUrl: external_exports.string().max(COMPANY_PROFILE_SOURCE_URL_MAX).nullable()
|
|
15874
|
+
}).strict();
|
|
15875
|
+
var CompanyProfileView = external_exports.object({
|
|
15876
|
+
header: CompanyProfileHeader,
|
|
15877
|
+
entries: external_exports.array(CompanyProfileEntry).max(COMPANY_PROFILE_MAX_ENTRIES),
|
|
15878
|
+
/** How many more rows this organization may keep before it must forget one. */
|
|
15879
|
+
remaining: external_exports.number().int().min(0),
|
|
15880
|
+
/** Members read the profile; Owners and Admins write it (ORG-2). */
|
|
15881
|
+
editable: external_exports.boolean()
|
|
15882
|
+
}).strict();
|
|
15883
|
+
var PutCompanyProfileEntryRequest = external_exports.object({
|
|
15884
|
+
section: CompanyProfileSection,
|
|
15885
|
+
subject: external_exports.string().trim().min(1).max(COMPANY_PROFILE_SUBJECT_MAX),
|
|
15886
|
+
text: external_exports.string().trim().min(1).max(COMPANY_PROFILE_TEXT_MAX)
|
|
15887
|
+
}).strict();
|
|
15888
|
+
var UpdateCompanyProfileHeaderRequest = external_exports.object({
|
|
15889
|
+
websiteUrl: external_exports.string().trim().max(COMPANY_PROFILE_SOURCE_URL_MAX).nullable()
|
|
15890
|
+
}).strict();
|
|
15891
|
+
|
|
15802
15892
|
// ../../packages/contracts/src/connections.ts
|
|
15803
15893
|
var McpTransport = external_exports.enum(["http", "sse"]);
|
|
15804
15894
|
var ConnectionAuthKind = external_exports.enum(["none", "bearer", "oauth"]);
|
|
@@ -16947,6 +17037,14 @@ var Schedule = external_exports.object({
|
|
|
16947
17037
|
* a Machine with fresh Browser capability instead of running blind (OB-14).
|
|
16948
17038
|
*/
|
|
16949
17039
|
requiresBrowser: external_exports.boolean().default(false),
|
|
17040
|
+
/**
|
|
17041
|
+
* Break-in rhythm (OB-14, founder direction 2026-08-24): the Automation
|
|
17042
|
+
* starts on its stored cadence and settles onto this one at the given
|
|
17043
|
+
* moment, so an initiative routine runs daily while the teammate is new and
|
|
17044
|
+
* weekly once it has found its feet. A person editing the cadence clears
|
|
17045
|
+
* this: their explicit choice is the new truth.
|
|
17046
|
+
*/
|
|
17047
|
+
settle: external_exports.object({ at: IsoDate, cadence: ScheduleCadence }).nullable().default(null),
|
|
16950
17048
|
enabled: external_exports.boolean(),
|
|
16951
17049
|
lastRunAt: IsoDate.nullable(),
|
|
16952
17050
|
skippedRuns: external_exports.number().int().min(0).default(0),
|
|
@@ -16967,7 +17065,9 @@ var CreateScheduleRequest = external_exports.object({
|
|
|
16967
17065
|
cadence: ScheduleCadence,
|
|
16968
17066
|
endsAt: IsoDate.nullable().optional(),
|
|
16969
17067
|
requestedHostId: HostId.nullable().optional(),
|
|
16970
|
-
requiresBrowser: external_exports.boolean().optional()
|
|
17068
|
+
requiresBrowser: external_exports.boolean().optional(),
|
|
17069
|
+
/** Break-in rhythm: begin on `cadence`, settle onto this one at the moment given. */
|
|
17070
|
+
settle: external_exports.object({ at: IsoDate, cadence: ScheduleCadence }).nullable().optional()
|
|
16971
17071
|
});
|
|
16972
17072
|
var UpdateScheduleRequest = external_exports.object({
|
|
16973
17073
|
name: Schedule.shape.name,
|
|
@@ -18488,6 +18588,22 @@ var AgentOp = external_exports.union([
|
|
|
18488
18588
|
}),
|
|
18489
18589
|
/** Retract a memory that is wrong or stale; self-correction is the point. */
|
|
18490
18590
|
external_exports.object({ kind: external_exports.literal("memory.forget"), memoryId: MemoryId }),
|
|
18591
|
+
/**
|
|
18592
|
+
* Keep one fact about the organization itself in the shared Company profile
|
|
18593
|
+
* (CP-1). Unlike `memory.remember`, which is this teammate's own, every
|
|
18594
|
+
* teammate and the Manager read this one, so it takes no scope: a company
|
|
18595
|
+
* fact is not true on one Machine. The cloud fixes its trust from the run's
|
|
18596
|
+
* own origin, so a fact learned during externally-triggered work reaches the
|
|
18597
|
+
* rest of the team marked as such.
|
|
18598
|
+
*/
|
|
18599
|
+
external_exports.object({
|
|
18600
|
+
kind: external_exports.literal("company.note"),
|
|
18601
|
+
section: CompanyProfileSection,
|
|
18602
|
+
subject: external_exports.string().min(1).max(COMPANY_PROFILE_SUBJECT_MAX),
|
|
18603
|
+
text: external_exports.string().min(1).max(COMPANY_PROFILE_TEXT_MAX)
|
|
18604
|
+
}),
|
|
18605
|
+
/** Remove a company fact that is wrong or stale, by its id. */
|
|
18606
|
+
external_exports.object({ kind: external_exports.literal("company.forget"), entryId: CompanyProfileEntryId }),
|
|
18491
18607
|
/** The teammate's working-folder registry with per-Machine availability. */
|
|
18492
18608
|
external_exports.object({ kind: external_exports.literal("workspace.list") }),
|
|
18493
18609
|
/**
|
|
@@ -22476,6 +22592,7 @@ var InterviewTurn = InterviewQuestion.extend({
|
|
|
22476
22592
|
});
|
|
22477
22593
|
var InterviewSubject = external_exports.enum([
|
|
22478
22594
|
"business",
|
|
22595
|
+
"website",
|
|
22479
22596
|
"channels",
|
|
22480
22597
|
"tools",
|
|
22481
22598
|
"handoff",
|
|
@@ -22716,6 +22833,20 @@ var CompanySetupCheckIn = external_exports.object({
|
|
|
22716
22833
|
team: external_exports.array(CheckInTeammate).max(COMPANY_SETUP_MAX_CHECK_IN_TEAM),
|
|
22717
22834
|
connectedTools: external_exports.array(external_exports.object({ kind: CompanyToolKind, name: external_exports.string().trim().min(1).max(120) })).max(COMPANY_SETUP_MAX_CHECK_IN_TOOLS)
|
|
22718
22835
|
});
|
|
22836
|
+
var CompanySetupResearchState = external_exports.object({
|
|
22837
|
+
/** The site being read, normalized; null once cleared. */
|
|
22838
|
+
websiteUrl: external_exports.string().max(500).nullable(),
|
|
22839
|
+
startedAt: IsoDate,
|
|
22840
|
+
finishedAt: IsoDate.nullable(),
|
|
22841
|
+
/** Plain-language failure for the page; null while running or on success. */
|
|
22842
|
+
error: external_exports.string().max(300).nullable(),
|
|
22843
|
+
/** Company facts written into the profile by this pass. */
|
|
22844
|
+
factsFound: external_exports.number().int().min(0),
|
|
22845
|
+
/** Competitors written into the profile's market section (OB-15). */
|
|
22846
|
+
competitorsFound: external_exports.number().int().min(0),
|
|
22847
|
+
/** True once a logo image was verified and stored. */
|
|
22848
|
+
logoFound: external_exports.boolean()
|
|
22849
|
+
}).strict();
|
|
22719
22850
|
var CompanySetupView = external_exports.object({
|
|
22720
22851
|
id: CompanySetupId.nullable(),
|
|
22721
22852
|
orgId: OrgId,
|
|
@@ -22741,6 +22872,13 @@ var CompanySetupView = external_exports.object({
|
|
|
22741
22872
|
/** Oldest first; the planner's visible decisions so far. */
|
|
22742
22873
|
notes: external_exports.array(CompanySetupPlanningNote).max(COMPANY_SETUP_PLANNING_NOTES_MAX).default([])
|
|
22743
22874
|
}).nullable(),
|
|
22875
|
+
/**
|
|
22876
|
+
* Looking the company up from the website the person gave (OB-15). It runs
|
|
22877
|
+
* beside the interview rather than in front of it, so the person keeps
|
|
22878
|
+
* answering while Zixt reads; the page polls the same way it does for the
|
|
22879
|
+
* plan. A failure is reported and never blocks setup.
|
|
22880
|
+
*/
|
|
22881
|
+
research: CompanySetupResearchState.nullable(),
|
|
22744
22882
|
approval: CompanySetupApproval.nullable(),
|
|
22745
22883
|
steps: external_exports.array(CompanySetupStep),
|
|
22746
22884
|
progress: CompanySetupProgress,
|
|
@@ -39050,6 +39188,38 @@ var TOOLS = [
|
|
|
39050
39188
|
required: ["agent_id"]
|
|
39051
39189
|
}
|
|
39052
39190
|
},
|
|
39191
|
+
{
|
|
39192
|
+
name: "note_company_fact",
|
|
39193
|
+
description: "Keep one short fact about the organization you work for in the shared company profile, which every teammate and the manager read on every task: what the business does, who it serves, how customers reach it, how it operates, how it sounds, or who it competes with. Use it when you learn something durable about the business itself, and to correct a fact that is wrong - writing the same section and subject again replaces the earlier text. This is not your own memory: use remember for what you learned about a project or this machine, and this for what is true about the company.",
|
|
39194
|
+
inputSchema: {
|
|
39195
|
+
type: "object",
|
|
39196
|
+
properties: {
|
|
39197
|
+
section: {
|
|
39198
|
+
type: "string",
|
|
39199
|
+
enum: ["identity", "customers", "contact", "operating", "brand", "market"],
|
|
39200
|
+
description: "Which part of the company this fact is about."
|
|
39201
|
+
},
|
|
39202
|
+
subject: {
|
|
39203
|
+
type: "string",
|
|
39204
|
+
description: "A few words naming the topic; the same subject replaces the earlier fact."
|
|
39205
|
+
},
|
|
39206
|
+
text: {
|
|
39207
|
+
type: "string",
|
|
39208
|
+
description: "One short sentence a colleague could act on."
|
|
39209
|
+
}
|
|
39210
|
+
},
|
|
39211
|
+
required: ["section", "subject", "text"]
|
|
39212
|
+
}
|
|
39213
|
+
},
|
|
39214
|
+
{
|
|
39215
|
+
name: "forget_company_fact",
|
|
39216
|
+
description: "Remove one fact from the shared company profile by its id, because it stopped being true or was never true.",
|
|
39217
|
+
inputSchema: {
|
|
39218
|
+
type: "object",
|
|
39219
|
+
properties: { entry_id: { type: "string", description: "The company fact id." } },
|
|
39220
|
+
required: ["entry_id"]
|
|
39221
|
+
}
|
|
39222
|
+
},
|
|
39053
39223
|
{
|
|
39054
39224
|
name: "remember",
|
|
39055
39225
|
description: 'Keep one durable fact in your curated memory, injected into your future runs. Use when a person corrects you, states a lasting preference, or you learn a stable fact about a project or this machine (folder locations, installed tools, environment quirks). One short fact per memory. Scope "machine" marks a fact true only on the machine this run is on; "global" travels everywhere.',
|
|
@@ -39393,6 +39563,22 @@ function opFor(name, args) {
|
|
|
39393
39563
|
}
|
|
39394
39564
|
case "forget":
|
|
39395
39565
|
return { kind: "memory.forget", memoryId: str("memory_id") };
|
|
39566
|
+
case "note_company_fact": {
|
|
39567
|
+
const section = String(args["section"] ?? "");
|
|
39568
|
+
if (section !== "identity" && section !== "customers" && section !== "contact" && section !== "operating" && section !== "brand" && section !== "market") {
|
|
39569
|
+
throw new Error(
|
|
39570
|
+
"section must be identity, customers, contact, operating, brand, or market"
|
|
39571
|
+
);
|
|
39572
|
+
}
|
|
39573
|
+
return {
|
|
39574
|
+
kind: "company.note",
|
|
39575
|
+
section,
|
|
39576
|
+
subject: str("subject"),
|
|
39577
|
+
text: str("text")
|
|
39578
|
+
};
|
|
39579
|
+
}
|
|
39580
|
+
case "forget_company_fact":
|
|
39581
|
+
return { kind: "company.forget", entryId: str("entry_id") };
|
|
39396
39582
|
case "list_workspaces":
|
|
39397
39583
|
return { kind: "workspace.list" };
|
|
39398
39584
|
case "add_workspace":
|