@helyx/bot 0.1.2 → 0.2.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/CHANGELOG.md CHANGED
@@ -1,5 +1,28 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.2.0
4
+
5
+ ### Minor Changes
6
+
7
+ - 7b25ea0: Add the opt-in Helyx Cloud Connect configuration, local persistence, connector runtime, support-redaction contract and generated self-host environment guidance. Cloud Connect remains disabled until a deployment owner explicitly configures and enrols it.
8
+
9
+ ### Patch Changes
10
+
11
+ - Updated dependencies [7b25ea0]
12
+ - @helyx/config@0.2.0
13
+ - @helyx/database@0.2.0
14
+ - @helyx/module-manifest@0.2.0
15
+ - @helyx/platform@0.1.3
16
+ - @helyx/core@0.1.3
17
+ - @helyx/sdk@0.2.3
18
+ - @helyx/framework@0.1.3
19
+
20
+ ## 0.1.3 - 2026-07-23
21
+
22
+ - Acknowledge slow interactions safely, edit deferred responses, support
23
+ module-owned public message updates and log bounded interaction identifiers
24
+ when handling fails.
25
+
3
26
  ## 0.1.2 - 2026-07-23
4
27
 
5
28
  - Identify the included Helyx Source Available Licence as `HSAL 1.0` and align public core dependencies.
package/README.md CHANGED
@@ -16,4 +16,6 @@ Gateway intents are derived from installed event contributions. The bot always r
16
16
 
17
17
  When `HELYX_BOT_CONTROL_SECRET` is configured, the bot also starts a private authenticated HTTP control server on `HELYX_BOT_CONTROL_PORT`. The dashboard API uses this service to obtain real Discord roles and channels and to apply validated module, configuration and permission changes. Only `/health` is unauthenticated; all `/v1` routes require the shared bearer secret. Keep this endpoint on a private service network and do not assign it a public domain.
18
18
 
19
+ Optional Helyx Cloud Connect is a separate outbound management path for self-hosted deployments. It is disabled unless `HELYX_CLOUD_CONNECT_ENABLED=true` and requires a separate local `HELYX_DATA_ENCRYPTION_KEY`. The owner-only `/helyx-cloud` command supports connection-code enrolment, status, credential rotation, disconnection and bounded support consent. The bot never sends its Discord token, database URL or connector private key to Helyx Cloud, and local Discord operation continues when Cloud is unavailable.
20
+
19
21
  For packaged operation use `helyx start`. `helyx migrate` applies core database migrations without Discord, and read-only `helyx doctor` verifies environment, PostgreSQL migration history, and configured package metadata.
@@ -0,0 +1,43 @@
1
+ import type { BotEnvironment } from "@helyx/config";
2
+ import { type CloudConnectorConsentRecord, type DatabasePool } from "@helyx/database";
3
+ import type { Client } from "discord.js";
4
+ import type { Logger } from "pino";
5
+ import type { ConfiguredModulePackage } from "./modules.js";
6
+ import type { BotControlHandler } from "./control-server.js";
7
+ type ConnectorState = "disabled" | "unpaired" | "connecting" | "online" | "offline" | "revoked" | "stopped";
8
+ export interface CloudConnectorStatus {
9
+ state: ConnectorState;
10
+ installationId?: string;
11
+ lastConnectedAt?: Date;
12
+ lastErrorCode?: string;
13
+ }
14
+ export declare class CloudConnectorController {
15
+ #private;
16
+ private readonly input;
17
+ constructor(input: {
18
+ environment: BotEnvironment;
19
+ database: DatabasePool;
20
+ client: Client;
21
+ modules: readonly ConfiguredModulePackage[];
22
+ coreVersion: string;
23
+ logger: Logger;
24
+ });
25
+ setControlHandler(handler: BotControlHandler): void;
26
+ start(): Promise<void>;
27
+ status(): CloudConnectorStatus;
28
+ getSupportConsent(): Promise<CloudConnectorConsentRecord>;
29
+ updateSupportConsent(input: {
30
+ supportInspectionEnabled: boolean;
31
+ supportDataClasses: string[];
32
+ diagnosticsEnabled: boolean;
33
+ }): Promise<CloudConnectorConsentRecord>;
34
+ enrol(rawToken: string, source: "startup" | "discord" | "file"): Promise<CloudConnectorStatus>;
35
+ disconnect(): Promise<void>;
36
+ rotate(): Promise<CloudConnectorStatus>;
37
+ stop(): Promise<void>;
38
+ }
39
+ export declare class CloudConnectorUserError extends Error {
40
+ constructor(message: string);
41
+ }
42
+ export {};
43
+ //# sourceMappingURL=cloud-connector.d.ts.map