@toon-protocol/townhouse 0.6.0 → 0.8.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.
@@ -22,10 +22,10 @@
22
22
  # Story 45.4 boots only connector + townhouse-api at apex install
23
23
  #
24
24
  # Digest placeholders (substituted at build time from dist/image-manifest.json):
25
- # @sha256:6de5d4afecd687afc98df4a876d7e9ae6ce639201fea192eb106e501ebbb59d6 → @sha256:<hex>
26
- # @sha256:48ab6c4be89e4d8b031550c2c0e7dee254c56923c939bebdc9f7cd22a95e02f2 → @sha256:<hex>
27
- # @sha256:ee77ef2d994cd6a9e461dfa8cfb8e1587eaa4c37f886e91d7169c7dd3e97326a → @sha256:<hex>
28
- # @sha256:c5294dd01b726058a1b50eab7f3a4a538534230b64bfc6ddecc217f7a3171d5b → @sha256:<hex>
25
+ # @sha256:df07e6418c3a00c6a011a77690e5b7fac03af3ae81a0428ed93a048d468edc09 → @sha256:<hex>
26
+ # @sha256:809692e969e6b2fa1fc180e069f6892398d3b001119c1d0de430502c1e6988c6 → @sha256:<hex>
27
+ # @sha256:70db26a8fbe1c704239c560f7f237b8ff1b8f75c162affca25ccf622b1c38790 → @sha256:<hex>
28
+ # @sha256:7be55528a618b703946ca2e30c95df3fea1ef0107aad916385d95c147819f6db → @sha256:<hex>
29
29
  # @sha256:d22a786f82cc928238b0ef14c6455d1238bd2f42744138cad8af81ca1747ff6e → @sha256:<hex>
30
30
  #
31
31
  # Scope guard (Story 45.2 does NOT include):
@@ -157,7 +157,7 @@ services:
157
157
  # Port D21-008: Fastify host API on 127.0.0.1:28090.
158
158
  # ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
159
159
  townhouse-api:
160
- image: ghcr.io/toon-protocol/townhouse-api@sha256:6de5d4afecd687afc98df4a876d7e9ae6ce639201fea192eb106e501ebbb59d6
160
+ image: ghcr.io/toon-protocol/townhouse-api@sha256:df07e6418c3a00c6a011a77690e5b7fac03af3ae81a0428ed93a048d468edc09
161
161
  container_name: townhouse-hs-api
162
162
  # Run as the operator's host UID so bind-mounted ~/.townhouse files
163
163
  # (rw------- 600) are readable. TOWNHOUSE_UID is injected by `townhouse hs up`.
@@ -264,7 +264,7 @@ services:
264
264
  # start at first run).
265
265
  # ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
266
266
  town:
267
- image: ghcr.io/toon-protocol/town@sha256:48ab6c4be89e4d8b031550c2c0e7dee254c56923c939bebdc9f7cd22a95e02f2
267
+ image: ghcr.io/toon-protocol/town@sha256:809692e969e6b2fa1fc180e069f6892398d3b001119c1d0de430502c1e6988c6
268
268
  container_name: townhouse-hs-town
269
269
  profiles: [town]
270
270
  networks:
@@ -330,7 +330,7 @@ services:
330
330
  # Lazy-provisioned via Epic 46: `townhouse node add mill`
331
331
  # ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
332
332
  mill:
333
- image: ghcr.io/toon-protocol/mill@sha256:ee77ef2d994cd6a9e461dfa8cfb8e1587eaa4c37f886e91d7169c7dd3e97326a
333
+ image: ghcr.io/toon-protocol/mill@sha256:70db26a8fbe1c704239c560f7f237b8ff1b8f75c162affca25ccf622b1c38790
334
334
  container_name: townhouse-hs-mill
335
335
  profiles: [mill]
336
336
  networks:
@@ -388,7 +388,7 @@ services:
388
388
  # Lazy-provisioned via Epic 46: `townhouse node add dvm`
389
389
  # ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
390
390
  dvm:
391
- image: ghcr.io/toon-protocol/dvm@sha256:c5294dd01b726058a1b50eab7f3a4a538534230b64bfc6ddecc217f7a3171d5b
391
+ image: ghcr.io/toon-protocol/dvm@sha256:7be55528a618b703946ca2e30c95df3fea1ef0107aad916385d95c147819f6db
392
392
  container_name: townhouse-hs-dvm
393
393
  profiles: [dvm]
394
394
  networks:
@@ -1,7 +1,7 @@
1
1
  import { createRequire } from 'module'; const require = createRequire(import.meta.url);
2
2
  import {
3
3
  DEFAULT_CONNECTOR_IMAGE
4
- } from "./chunk-NZR5C3KD.js";
4
+ } from "./chunk-RCHQDZBZ.js";
5
5
  import "./chunk-I2R4CRUX.js";
6
6
 
7
7
  // src/presets/demo.ts
@@ -115,4 +115,4 @@ export {
115
115
  defaultLeasesPath,
116
116
  resolveChainEndpoints
117
117
  };
118
- //# sourceMappingURL=demo-4ZF3RRNH.js.map
118
+ //# sourceMappingURL=demo-CKC6HA7X.js.map
@@ -1,27 +1,27 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
- "townhouseVersion": "0.6.0",
4
- "builtAt": "2026-06-03T21:38:35.242Z",
3
+ "townhouseVersion": "0.8.0",
4
+ "builtAt": "2026-06-04T01:50:27.440Z",
5
5
  "images": {
6
6
  "townhouse-api": {
7
7
  "name": "ghcr.io/toon-protocol/townhouse-api",
8
- "tag": "0.6.0",
9
- "digest": "sha256:6de5d4afecd687afc98df4a876d7e9ae6ce639201fea192eb106e501ebbb59d6"
8
+ "tag": "0.8.0",
9
+ "digest": "sha256:df07e6418c3a00c6a011a77690e5b7fac03af3ae81a0428ed93a048d468edc09"
10
10
  },
11
11
  "town": {
12
12
  "name": "ghcr.io/toon-protocol/town",
13
- "tag": "0.6.0",
14
- "digest": "sha256:48ab6c4be89e4d8b031550c2c0e7dee254c56923c939bebdc9f7cd22a95e02f2"
13
+ "tag": "0.8.0",
14
+ "digest": "sha256:809692e969e6b2fa1fc180e069f6892398d3b001119c1d0de430502c1e6988c6"
15
15
  },
16
16
  "mill": {
17
17
  "name": "ghcr.io/toon-protocol/mill",
18
- "tag": "0.6.0",
19
- "digest": "sha256:ee77ef2d994cd6a9e461dfa8cfb8e1587eaa4c37f886e91d7169c7dd3e97326a"
18
+ "tag": "0.8.0",
19
+ "digest": "sha256:70db26a8fbe1c704239c560f7f237b8ff1b8f75c162affca25ccf622b1c38790"
20
20
  },
21
21
  "dvm": {
22
22
  "name": "ghcr.io/toon-protocol/dvm",
23
- "tag": "0.6.0",
24
- "digest": "sha256:c5294dd01b726058a1b50eab7f3a4a538534230b64bfc6ddecc217f7a3171d5b"
23
+ "tag": "0.8.0",
24
+ "digest": "sha256:7be55528a618b703946ca2e30c95df3fea1ef0107aad916385d95c147819f6db"
25
25
  },
26
26
  "connector": {
27
27
  "name": "ghcr.io/toon-protocol/connector",
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { E as EncryptedWallet, T as TownhouseConfig, W as WalletManager, a as ComposeProfile, N as NodeType$1, B as BandwidthStats, H as HealthCheckOptions, b as ChainProviderEntry } from './manager-DSkD9Td1.js';
2
- export { A as ApiConfig, c as ChainType, d as ComposeLoaderError, C as ComposeLoaderOptions, e as ConnectorConfig, f as ContainerSpec, D as DerivedNodeKeys, g as DvmNodeConfig, h as EvmChainProvider, L as LoggingConfig, M as MillNodeConfig, i as MinaChainProvider, j as NodeKeyInfo, k as NodeKeys, l as NodesConfig, O as OrchestratorEvents, S as SolanaChainProvider, m as TownNodeConfig, n as TransportConfig, o as WalletConfig, p as WalletManagerConfig, q as WalletState, r as loadComposeTemplate, s as materializeComposeTemplate } from './manager-DSkD9Td1.js';
1
+ import { E as EncryptedWallet, T as TownhouseConfig, W as WalletManager, a as ComposeProfile, N as NodeType$1, B as BandwidthStats, H as HealthCheckOptions, b as ChainProviderEntry } from './manager-CKTAGzVH.js';
2
+ export { A as ApiConfig, c as ChainType, d as ComposeLoaderError, C as ComposeLoaderOptions, e as ConnectorConfig, f as ContainerSpec, D as DerivedNodeKeys, g as DvmNodeConfig, h as EvmChainProvider, L as LoggingConfig, M as MillNodeConfig, i as MinaChainProvider, j as NodeKeyInfo, k as NodeKeys, l as NodesConfig, O as OrchestratorEvents, S as SolanaChainProvider, m as TownNodeConfig, n as TransportConfig, o as WalletConfig, p as WalletManagerConfig, q as WalletState, r as loadComposeTemplate, s as materializeComposeTemplate } from './manager-CKTAGzVH.js';
3
3
  import { EventEmitter } from 'node:events';
4
4
  import Docker from 'dockerode';
5
5
  import { FastifyBaseLogger, FastifyInstance } from 'fastify';
package/dist/index.js CHANGED
@@ -34,9 +34,9 @@ import {
34
34
  utcYearBoundary,
35
35
  validateConfig,
36
36
  writeNodesYaml
37
- } from "./chunk-ZUMMJFGH.js";
37
+ } from "./chunk-BDT2FIQL.js";
38
38
  import "./chunk-5O4SBV5O.js";
39
- import "./chunk-NZR5C3KD.js";
39
+ import "./chunk-RCHQDZBZ.js";
40
40
  import "./chunk-I2R4CRUX.js";
41
41
  export {
42
42
  BootReconciler,
@@ -88,8 +88,13 @@ interface EvmChainProvider {
88
88
  registryAddress: string;
89
89
  /** Settlement token (USDC, etc.) contract. */
90
90
  tokenAddress: string;
91
- /** Hex private key / key id the connector signs settlement claims with. */
92
- keyId: string;
91
+ /**
92
+ * Hex private key / key id the connector signs settlement claims with.
93
+ * Optional: when omitted, `townhouse hs up` fills it with the operator's
94
+ * mnemonic-derived apex settlement key (acct index 3). Set it only to use an
95
+ * external/hardware key.
96
+ */
97
+ keyId?: string;
93
98
  }
94
99
  /** Solana settlement chain. */
95
100
  interface SolanaChainProvider {
@@ -104,8 +109,11 @@ interface SolanaChainProvider {
104
109
  programId: string;
105
110
  /** Settlement token mint (base58). */
106
111
  tokenMint?: string;
107
- /** Key id the connector signs settlement claims with. */
108
- keyId: string;
112
+ /**
113
+ * Key id the connector signs settlement claims with. Optional — when omitted,
114
+ * `townhouse hs up` fills it with the operator's mnemonic-derived apex key.
115
+ */
116
+ keyId?: string;
109
117
  }
110
118
  /** Mina settlement chain. */
111
119
  interface MinaChainProvider {
@@ -537,6 +545,19 @@ declare class WalletManager {
537
545
  * still owned by WalletManager and will be zeroed by `lock()`.
538
546
  */
539
547
  getEvmPrivateKeyHex(nodeType: NodeType): string;
548
+ /**
549
+ * Derive the APEX (connector) settlement key from the operator mnemonic at
550
+ * ACCOUNT_INDEX_APEX. The apex signs settlement claims with this key, so the
551
+ * operator never has to supply a raw `keyId` to `townhouse chains add`.
552
+ *
553
+ * Returns the EVM private key as a `0x`-prefixed 64-char hex string — the
554
+ * form the connector config's `keyId` expects (matches the dev placeholder
555
+ * `0x7c85…`). Throws when the wallet is locked. Structured as an object so
556
+ * Solana/Mina apex keys can be added in a later phase.
557
+ */
558
+ getApexSettlementKeys(): {
559
+ evmPrivateKeyHex: string;
560
+ };
540
561
  /**
541
562
  * Returns the Solana Ed25519 private key seed for a node as a 64-char
542
563
  * lowercase hex string (32 raw seed bytes). Throws when the wallet is
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@toon-protocol/townhouse",
3
- "version": "0.6.0",
3
+ "version": "0.8.0",
4
4
  "description": "TOON Townhouse — host-native orchestrator + dashboard for Docker-containerized TOON nodes",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -71,11 +71,11 @@
71
71
  "tsup": "^8.0.0",
72
72
  "typescript": "^5.3.0",
73
73
  "vitest": "^1.0.0",
74
- "@toon-protocol/client": "^0.9.1",
75
- "@toon-protocol/core": "^1.4.1",
76
- "@toon-protocol/relay": "^1.3.1",
77
74
  "@toon-protocol/mill": "^0.1.0",
78
- "@toon-protocol/sdk": "^0.5.0"
75
+ "@toon-protocol/core": "^1.4.1",
76
+ "@toon-protocol/client": "^0.9.1",
77
+ "@toon-protocol/sdk": "^0.5.0",
78
+ "@toon-protocol/relay": "^1.3.1"
79
79
  },
80
80
  "scripts": {
81
81
  "build": "tsup",