@glyphteck/veyl 0.63.6 → 0.63.7

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/cli.js CHANGED
@@ -50263,7 +50263,7 @@ var package_default;
50263
50263
  var init_package2 = __esm(() => {
50264
50264
  package_default = {
50265
50265
  name: "veyl",
50266
- version: "0.63.6",
50266
+ version: "0.63.7",
50267
50267
  packageManager: "bun@1.4.0",
50268
50268
  private: true,
50269
50269
  license: "UNLICENSED",
package/dist/index.js CHANGED
@@ -50262,7 +50262,7 @@ var package_default;
50262
50262
  var init_package2 = __esm(() => {
50263
50263
  package_default = {
50264
50264
  name: "veyl",
50265
- version: "0.63.6",
50265
+ version: "0.63.7",
50266
50266
  packageManager: "bun@1.4.0",
50267
50267
  private: true,
50268
50268
  license: "UNLICENSED",
@@ -10,7 +10,7 @@ The secret-free version-2 manifest stores account indices, usernames, networks,
10
10
  - `echo` mirrors text, encrypted attachments, and payment requests with deterministic action ids. Group members derive exactly one source-specific eligible fleet echo from the encrypted roster for each source message; every other echo remains silent and only reads. Selection distributes independently across messages, so the same bot may legitimately win consecutive messages.
11
11
  - `faucet` pays valid requests through the public wallet API and journals caller operation ids.
12
12
  - `traffic` is an eligibility marker for an external local operator policy; it performs no work by itself.
13
- - `live` holds the account's normal encrypted live-room connection in each chat without advancing read state or sending messages.
13
+ - `live` holds the account's normal encrypted live-room connection in each chat without advancing read state or sending messages. The concrete host supplies the same realm-matched portable live transport used by graphical clients; startup rejects this role when that client port is absent.
14
14
  - `typing` requires `live` and continually renews one stable composition through the same encrypted live state until the policy stops.
15
15
 
16
16
  Only response-capable fleet peers are loop-suppressed. Incoming transaction events and staggered fallback loops call the public wallet claim method. Startup replays a bounded visible window; an event checkpoint suppresses completed source messages, while the action journal suppresses completed effects and stops ambiguous payments for explicit reconciliation.
@@ -14,12 +14,30 @@ async function loadBotFleetPolicy(options) {
14
14
  return createBotFleetPolicy(options);
15
15
  }
16
16
 
17
+ export async function resolveBotFleetClientOptions(source, profile) {
18
+ const options = typeof source === 'function'
19
+ ? await source(profile)
20
+ : source || {};
21
+ if (
22
+ profile?.roles?.includes('live')
23
+ && typeof options?.chat?.live?.connect !== 'function'
24
+ ) {
25
+ throw new Error(`live bot transport required: ${profile.profile}`);
26
+ }
27
+ return options;
28
+ }
29
+
17
30
  export async function createExampleBotFleetRuntime(options = {}) {
18
31
  const eventOptions = options.eventOptions;
32
+ const clientOptions = options.clientOptions;
19
33
  let checkpoint = options.checkpoint || null;
20
34
  const owner = await openFleetOwner({
21
35
  ...options,
22
36
  bootConcurrency: options.bootConcurrency ?? 2,
37
+ clientOptions: (profile) => resolveBotFleetClientOptions(
38
+ clientOptions,
39
+ profile
40
+ ),
23
41
  policies: [],
24
42
  eventOptions: async (profile) => ({
25
43
  replay: true,
package/package.json CHANGED
@@ -41,5 +41,5 @@
41
41
  "start": "node src/cli.js",
42
42
  "lint": "eslint src --quiet"
43
43
  },
44
- "version": "0.63.6"
44
+ "version": "0.63.7"
45
45
  }