@glyphteck/veyl 0.50.0 → 0.51.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.
@@ -13,6 +13,8 @@ The secret-free version-2 manifest stores account indices, usernames, networks,
13
13
 
14
14
  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.
15
15
 
16
+ The fleet owner keeps one unlocked public SDK client per account. Root-derived fleets supply an ephemeral account master seed directly into the normal vault session flow, avoiding a redundant password KDF while preserving the server-verified vault signature and encrypted registry checks. Account readiness waits for auth, vault proof, and chat-list ingress only; wallet boot, transaction history, and per-chat replay hydrate in the background. `owner.reload()` imports a fresh policy and reconciles the manifest without reopening unchanged clients.
17
+
16
18
  ## Try a disposable fleet
17
19
 
18
20
  1. Create a seed with `createFleetSeed` and an empty version-2 manifest with `saveFleetManifest`.
@@ -3,7 +3,15 @@ import {
3
3
  openFleetEventCheckpoint,
4
4
  openFleetOwner,
5
5
  } from '@glyphteck/veyl';
6
- import { createBotFleetPolicy } from './policy.js';
6
+ let policyRevision = 0;
7
+
8
+ async function loadBotFleetPolicy(options) {
9
+ policyRevision += 1;
10
+ const source = new URL('./policy.js', import.meta.url);
11
+ source.searchParams.set('revision', String(policyRevision));
12
+ const { createBotFleetPolicy } = await import(source.href);
13
+ return createBotFleetPolicy(options);
14
+ }
7
15
 
8
16
  export async function createExampleBotFleetRuntime(options = {}) {
9
17
  const eventOptions = options.eventOptions;
@@ -45,12 +53,18 @@ export async function createExampleBotFleetRuntime(options = {}) {
45
53
  name: owner.manifest.name,
46
54
  path: options.checkpointPath,
47
55
  });
48
- const policy = options.policy || createBotFleetPolicy({
56
+ const extraPolicies = [...(options.policies || [])];
57
+ const policyOptions = {
49
58
  journal,
50
59
  checkpoint,
51
60
  mode: options.baseline === true ? 'baseline' : 'run',
52
- });
53
- for (const extra of options.policies || []) owner.use(extra);
54
- owner.use(policy);
61
+ };
62
+ const loadPolicies = async () => [
63
+ ...extraPolicies,
64
+ options.policy || await loadBotFleetPolicy(policyOptions),
65
+ ];
66
+ const policies = await loadPolicies();
67
+ for (const policy of policies) owner.use(policy);
68
+ if (!options.policy) owner.setPolicyLoader(loadPolicies);
55
69
  return owner;
56
70
  }
package/package.json CHANGED
@@ -35,10 +35,10 @@
35
35
  "access": "public"
36
36
  },
37
37
  "scripts": {
38
- "build": "bun build src/index.js src/cli.js --target=node --outdir dist && bun build src/account.js src/auth.js --target=browser --outdir dist",
38
+ "build": "bun build src/index.js src/cli.js src/runtime/kdf-worker-thread.js --target=node --outdir dist --entry-naming '[name].[ext]' && bun build src/account.js src/auth.js --target=browser --outdir dist",
39
39
  "prepack": "bun run build",
40
40
  "start": "node src/cli.js",
41
41
  "lint": "eslint src --quiet"
42
42
  },
43
- "version": "0.50.0"
43
+ "version": "0.51.0"
44
44
  }