@mandible-ai/mandible 0.2.0 → 0.3.1

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.
Files changed (101) hide show
  1. package/README.md +169 -58
  2. package/dist/examples/code-pipeline/colonies.d.ts +10 -0
  3. package/dist/examples/code-pipeline/colonies.d.ts.map +1 -0
  4. package/dist/examples/code-pipeline/colonies.js +112 -0
  5. package/dist/examples/code-pipeline/colonies.js.map +1 -0
  6. package/dist/examples/code-pipeline/docker.d.ts +3 -0
  7. package/dist/examples/code-pipeline/docker.d.ts.map +1 -0
  8. package/dist/examples/code-pipeline/docker.js +63 -0
  9. package/dist/examples/code-pipeline/docker.js.map +1 -0
  10. package/dist/examples/code-pipeline/index.js +44 -228
  11. package/dist/examples/code-pipeline/index.js.map +1 -1
  12. package/dist/examples/code-pipeline/with-providers.js +1 -2
  13. package/dist/examples/code-pipeline/with-providers.js.map +1 -1
  14. package/dist/examples/github-colony/mandible.config.d.ts +1 -10
  15. package/dist/examples/github-colony/mandible.config.d.ts.map +1 -1
  16. package/dist/examples/github-colony/mandible.config.js +16 -24
  17. package/dist/examples/github-colony/mandible.config.js.map +1 -1
  18. package/dist/examples/repo-maintenance/fixer.d.ts +11 -4
  19. package/dist/examples/repo-maintenance/fixer.d.ts.map +1 -1
  20. package/dist/examples/repo-maintenance/fixer.js +130 -123
  21. package/dist/examples/repo-maintenance/fixer.js.map +1 -1
  22. package/dist/examples/repo-maintenance/mandible.config.d.ts +1 -10
  23. package/dist/examples/repo-maintenance/mandible.config.d.ts.map +1 -1
  24. package/dist/examples/repo-maintenance/mandible.config.js +14 -14
  25. package/dist/examples/repo-maintenance/mandible.config.js.map +1 -1
  26. package/dist/examples/repo-maintenance/scout.d.ts +11 -4
  27. package/dist/examples/repo-maintenance/scout.d.ts.map +1 -1
  28. package/dist/examples/repo-maintenance/scout.js +102 -95
  29. package/dist/examples/repo-maintenance/scout.js.map +1 -1
  30. package/dist/examples/repo-maintenance/seed.js +19 -37
  31. package/dist/examples/repo-maintenance/seed.js.map +1 -1
  32. package/dist/src/cloud/client.d.ts +1 -1
  33. package/dist/src/cloud/client.d.ts.map +1 -1
  34. package/dist/src/cloud/client.js +1 -1
  35. package/dist/src/cloud/client.js.map +1 -1
  36. package/dist/src/cloud/index.d.ts +1 -3
  37. package/dist/src/cloud/index.d.ts.map +1 -1
  38. package/dist/src/cloud/index.js +0 -1
  39. package/dist/src/cloud/index.js.map +1 -1
  40. package/dist/src/cloud/types.d.ts +5 -9
  41. package/dist/src/cloud/types.d.ts.map +1 -1
  42. package/dist/src/core/types.d.ts +43 -0
  43. package/dist/src/core/types.d.ts.map +1 -1
  44. package/dist/src/core/types.js +10 -0
  45. package/dist/src/core/types.js.map +1 -1
  46. package/dist/src/dsl/index.d.ts +1 -0
  47. package/dist/src/dsl/index.d.ts.map +1 -1
  48. package/dist/src/dsl/index.js +1 -0
  49. package/dist/src/dsl/index.js.map +1 -1
  50. package/dist/src/dsl/mandible.d.ts +62 -0
  51. package/dist/src/dsl/mandible.d.ts.map +1 -0
  52. package/dist/src/dsl/mandible.js +140 -0
  53. package/dist/src/dsl/mandible.js.map +1 -0
  54. package/dist/src/environments/filesystem/adapter.d.ts.map +1 -1
  55. package/dist/src/environments/filesystem/adapter.js.map +1 -1
  56. package/dist/src/hosts/docker.d.ts +67 -0
  57. package/dist/src/hosts/docker.d.ts.map +1 -0
  58. package/dist/src/hosts/docker.js +135 -0
  59. package/dist/src/hosts/docker.js.map +1 -0
  60. package/dist/src/hosts/index.d.ts +5 -0
  61. package/dist/src/hosts/index.d.ts.map +1 -0
  62. package/dist/src/hosts/index.js +3 -0
  63. package/dist/src/hosts/index.js.map +1 -0
  64. package/dist/src/hosts/local.d.ts +41 -0
  65. package/dist/src/hosts/local.d.ts.map +1 -0
  66. package/dist/src/hosts/local.js +84 -0
  67. package/dist/src/hosts/local.js.map +1 -0
  68. package/dist/src/index.d.ts +8 -3
  69. package/dist/src/index.d.ts.map +1 -1
  70. package/dist/src/index.js +8 -1
  71. package/dist/src/index.js.map +1 -1
  72. package/dist/src/providers/claude-code.d.ts.map +1 -1
  73. package/dist/src/providers/claude-code.js +3 -5
  74. package/dist/src/providers/claude-code.js.map +1 -1
  75. package/dist/src/providers/types.d.ts +0 -9
  76. package/dist/src/providers/types.d.ts.map +1 -1
  77. package/package.json +11 -6
  78. package/dist/examples/docker-pipeline/index.d.ts +0 -3
  79. package/dist/examples/docker-pipeline/index.d.ts.map +0 -1
  80. package/dist/examples/docker-pipeline/index.js +0 -235
  81. package/dist/examples/docker-pipeline/index.js.map +0 -1
  82. package/dist/examples/remote-pipeline/index.d.ts +0 -3
  83. package/dist/examples/remote-pipeline/index.d.ts.map +0 -1
  84. package/dist/examples/remote-pipeline/index.js +0 -154
  85. package/dist/examples/remote-pipeline/index.js.map +0 -1
  86. package/dist/src/environments/remote/adapter.d.ts +0 -61
  87. package/dist/src/environments/remote/adapter.d.ts.map +0 -1
  88. package/dist/src/environments/remote/adapter.js +0 -392
  89. package/dist/src/environments/remote/adapter.js.map +0 -1
  90. package/dist/src/environments/remote/index.d.ts +0 -5
  91. package/dist/src/environments/remote/index.d.ts.map +0 -1
  92. package/dist/src/environments/remote/index.js +0 -3
  93. package/dist/src/environments/remote/index.js.map +0 -1
  94. package/dist/src/environments/remote/protocol.d.ts +0 -124
  95. package/dist/src/environments/remote/protocol.d.ts.map +0 -1
  96. package/dist/src/environments/remote/protocol.js +0 -24
  97. package/dist/src/environments/remote/protocol.js.map +0 -1
  98. package/dist/src/providers/agent.d.ts +0 -23
  99. package/dist/src/providers/agent.d.ts.map +0 -1
  100. package/dist/src/providers/agent.js +0 -184
  101. package/dist/src/providers/agent.js.map +0 -1
@@ -1,154 +0,0 @@
1
- #!/usr/bin/env tsx
2
- // ============================================================
3
- // Remote Pipeline Integration Test
4
- // ============================================================
5
- // Runs the code-pipeline demo against a remote signal server
6
- // instead of the local filesystem. Proves Vertical Slice 1:
7
- //
8
- // 1. Start the Go signal server (must be running separately)
9
- // 2. Colonies connect via RemoteEnvironment (WebSocket)
10
- // 3. Dashboard shows real-time events
11
- // 4. Signals flow through the network, not the filesystem
12
- //
13
- // Prerequisites:
14
- // cd /path/to/mandible-cloud
15
- // MANDIBLE_DEV_API_KEY=your-api-key MANDIBLE_DEV_PROJECT=demo go run ./cmd/signalserver
16
- //
17
- // Then run this:
18
- // npx tsx examples/remote-pipeline/index.ts
19
- // ============================================================
20
- import { RemoteEnvironment } from '../../src/environments/remote/index.js';
21
- import { colony } from '../../src/dsl/index.js';
22
- import { startDevServer } from '../../src/cli/server.js';
23
- const SIGNAL_SERVER_URL = process.env.MANDIBLE_SIGNAL_SERVER ?? 'wss://api.mandible.dev/v1/signals';
24
- const API_KEY = process.env.MANDIBLE_API_KEY ?? '';
25
- const PROJECT = process.env.MANDIBLE_PROJECT ?? '';
26
- const DASHBOARD_PORT = parseInt(process.env.DASHBOARD_PORT ?? '4040', 10);
27
- function sleep(ms) { return new Promise(r => setTimeout(r, ms)); }
28
- // ── Simulated work ──────────────────────────────────────────
29
- async function simulateShaping(task) {
30
- await sleep(500 + Math.random() * 1500);
31
- return {
32
- code: `function ${task.name}() { return true; }`,
33
- linesChanged: Math.floor(Math.random() * 100) + 10,
34
- task: task.name,
35
- };
36
- }
37
- async function simulateReview(artifact) {
38
- await sleep(300 + Math.random() * 1000);
39
- const approved = Math.random() > 0.2;
40
- return {
41
- approved,
42
- feedback: approved
43
- ? `Code for "${artifact.task}" looks good.`
44
- : `Code for "${artifact.task}" needs error handling.`,
45
- };
46
- }
47
- async function simulateMerge(artifact) {
48
- await sleep(200 + Math.random() * 500);
49
- return { merged: true, task: artifact.task, commitHash: Math.random().toString(36).slice(2, 10) };
50
- }
51
- // ── Main ────────────────────────────────────────────────────
52
- async function main() {
53
- console.log('\n mandible remote pipeline test');
54
- console.log(` signal server: ${SIGNAL_SERVER_URL}`);
55
- console.log(` project: ${PROJECT}\n`);
56
- // Create the remote environment
57
- const env = new RemoteEnvironment({
58
- url: SIGNAL_SERVER_URL,
59
- apiKey: API_KEY,
60
- project: PROJECT,
61
- name: 'remote-demo',
62
- connectTimeout: 5_000,
63
- });
64
- // Connect and verify
65
- try {
66
- await env.connect();
67
- console.log(' connected to signal server\n');
68
- }
69
- catch (err) {
70
- console.error(` failed to connect: ${err.message}`);
71
- console.error(' make sure the signal server is running:');
72
- console.error(' MANDIBLE_DEV_API_KEY=your-api-key MANDIBLE_DEV_PROJECT=demo go run ./cmd/signalserver\n');
73
- process.exit(1);
74
- }
75
- // Define colonies against the remote environment
76
- const shaper = colony('shaper')
77
- .in(env)
78
- .sense('task:ready', { unclaimed: true, minConcentration: 0.1 })
79
- .do('shape-code', async (signal, ctx) => {
80
- ctx.log(`Shaping: ${signal.payload.name}`);
81
- const artifact = await simulateShaping(signal.payload);
82
- await ctx.deposit('artifact:shaped', artifact, { causedBy: [signal.id], tags: ['needs-review'] });
83
- await ctx.withdraw(signal.id);
84
- })
85
- .concurrency(2)
86
- .claim('lease', 30_000)
87
- .poll(1500)
88
- .build();
89
- const critic = colony('critic')
90
- .in(env)
91
- .sense('artifact:shaped', { unclaimed: true, minConcentration: 0.1 })
92
- .do('review-code', async (signal, ctx) => {
93
- ctx.log(`Reviewing: ${signal.payload.task}`);
94
- const review = await simulateReview(signal.payload);
95
- if (review.approved) {
96
- await ctx.deposit('review:approved', { artifact: signal.payload, feedback: review.feedback }, { causedBy: [signal.id], tags: ['ready-to-merge'] });
97
- }
98
- else {
99
- await ctx.deposit('review:rejected', { artifact: signal.payload, feedback: review.feedback }, { causedBy: [signal.id], tags: ['needs-rework'], ttl: 60_000 });
100
- }
101
- await ctx.withdraw(signal.id);
102
- })
103
- .concurrency(2)
104
- .claim('lease', 30_000)
105
- .poll(1500)
106
- .build();
107
- const keeper = colony('keeper')
108
- .in(env)
109
- .sense('review:approved', { unclaimed: true, minConcentration: 0.1 })
110
- .do('merge-artifact', async (signal, ctx) => {
111
- const artifact = signal.payload.artifact ?? {};
112
- ctx.log(`Merging: ${artifact.task}`);
113
- const result = await simulateMerge(artifact);
114
- await ctx.deposit('task:complete', result, { causedBy: [signal.id], tags: ['complete'] });
115
- await ctx.withdraw(signal.id);
116
- })
117
- .concurrency(1)
118
- .claim('exclusive')
119
- .poll(1500)
120
- .build();
121
- // Start the dashboard pointing at the remote environment
122
- const config = {
123
- environment: env,
124
- colonies: [shaper, critic, keeper],
125
- dashboard: { port: DASHBOARD_PORT, open: true },
126
- };
127
- await startDevServer(config, { port: DASHBOARD_PORT, open: true });
128
- // Seed tasks after colonies are running
129
- console.log(' seeding tasks...\n');
130
- await sleep(2000);
131
- const tasks = [
132
- { name: 'auth-middleware', priority: 'high', description: 'Add JWT authentication' },
133
- { name: 'rate-limiter', priority: 'medium', description: 'API rate limiting' },
134
- { name: 'health-check', priority: 'low', description: 'Add /health endpoint' },
135
- { name: 'error-handler', priority: 'high', description: 'Global error handling' },
136
- { name: 'request-logger', priority: 'medium', description: 'Structured logging' },
137
- ];
138
- for (const task of tasks) {
139
- await env.deposit({
140
- type: 'task:ready',
141
- payload: task,
142
- meta: { deposited_by: 'seed', tags: [task.priority] },
143
- });
144
- console.log(` seeded: task:ready "${task.name}"`);
145
- }
146
- console.log(`\n dashboard: http://localhost:${DASHBOARD_PORT}`);
147
- console.log(' watching colonies coordinate over the network...');
148
- console.log(' press Ctrl+C to stop\n');
149
- }
150
- main().catch((err) => {
151
- console.error(err);
152
- process.exit(1);
153
- });
154
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../examples/remote-pipeline/index.ts"],"names":[],"mappings":"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"}
@@ -1,61 +0,0 @@
1
- import type { Environment, Signal, SignalQuery, Subscription, DecayResult, SignalMeta } from '../../core/types.js';
2
- import type { RuntimeEventData } from '../../core/events.js';
3
- export interface RemoteEnvConfig {
4
- url: string;
5
- apiKey: string;
6
- project: string;
7
- colony?: string;
8
- publicKey?: string;
9
- name?: string;
10
- /** Connection timeout in ms. Default: 10_000 */
11
- connectTimeout?: number;
12
- /** Request timeout in ms. Default: 30_000 */
13
- requestTimeout?: number;
14
- /** Whether to auto-reconnect on disconnect. Default: true */
15
- autoReconnect?: boolean;
16
- /** Max reconnect attempts. Default: Infinity */
17
- maxReconnectAttempts?: number;
18
- }
19
- export declare class RemoteEnvironment implements Environment {
20
- readonly name: string;
21
- private config;
22
- private ws;
23
- private authenticated;
24
- private pending;
25
- private subscriptions;
26
- private eventListeners;
27
- private idCounter;
28
- private reconnectAttempts;
29
- private reconnectTimer?;
30
- private connectPromise;
31
- private closed;
32
- constructor(config: RemoteEnvConfig);
33
- private nextId;
34
- connect(): Promise<void>;
35
- private doConnect;
36
- private authenticate;
37
- private scheduleReconnect;
38
- private resubscribeAll;
39
- close(): Promise<void>;
40
- private send;
41
- private handleMessage;
42
- private request;
43
- private rejectAllPending;
44
- private ensureConnected;
45
- observe(query: SignalQuery): Promise<Signal[]>;
46
- deposit(input: Omit<Signal, 'id' | 'meta'> & {
47
- meta?: Partial<SignalMeta>;
48
- }): Promise<Signal>;
49
- withdraw(signalId: string): Promise<void>;
50
- claim(signalId: string, claimant: string, leaseDuration?: number): Promise<boolean>;
51
- release(signalId: string): Promise<void>;
52
- watch(query: SignalQuery, callback: (signal: Signal) => void): Subscription;
53
- history(query: SignalQuery & {
54
- includeWithdrawn?: boolean;
55
- }): Promise<Signal[]>;
56
- decay(): Promise<DecayResult>;
57
- snapshot(): Promise<Signal[]>;
58
- onEvent(listener: (event: RuntimeEventData) => void): () => void;
59
- emitEvent(event: RuntimeEventData): void;
60
- }
61
- //# sourceMappingURL=adapter.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../../../src/environments/remote/adapter.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EACV,WAAW,EACX,MAAM,EACN,WAAW,EACX,YAAY,EACZ,WAAW,EACX,UAAU,EACX,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAU7D,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,gDAAgD;IAChD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,6CAA6C;IAC7C,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,6DAA6D;IAC7D,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,gDAAgD;IAChD,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B;AAcD,qBAAa,iBAAkB,YAAW,WAAW;IACnD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,MAAM,CAEoC;IAElD,OAAO,CAAC,EAAE,CAA0B;IACpC,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,OAAO,CAAqC;IACpD,OAAO,CAAC,aAAa,CAAwC;IAC7D,OAAO,CAAC,cAAc,CAAgD;IACtE,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,iBAAiB,CAAK;IAC9B,OAAO,CAAC,cAAc,CAAC,CAAgC;IACvD,OAAO,CAAC,cAAc,CAA8B;IACpD,OAAO,CAAC,MAAM,CAAS;gBAEX,MAAM,EAAE,eAAe;IAmBnC,OAAO,CAAC,MAAM;IAIR,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAY9B,OAAO,CAAC,SAAS;YA0CH,YAAY;IA6B1B,OAAO,CAAC,iBAAiB;YASX,cAAc;IAetB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAe5B,OAAO,CAAC,IAAI;IAOZ,OAAO,CAAC,aAAa;IAkCrB,OAAO,CAAC,OAAO;IAuBf,OAAO,CAAC,gBAAgB;YAQV,eAAe;IASvB,OAAO,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAU9C,OAAO,CACX,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,GAAG,MAAM,CAAC,GAAG;QAAE,IAAI,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,CAAA;KAAE,GAClE,OAAO,CAAC,MAAM,CAAC;IAqBZ,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IASzC,KAAK,CACT,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,aAAa,CAAC,EAAE,MAAM,GACrB,OAAO,CAAC,OAAO,CAAC;IAWb,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAS9C,KAAK,CAAC,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,GAAG,YAAY;IAoCrE,OAAO,CACX,KAAK,EAAE,WAAW,GAAG;QAAE,gBAAgB,CAAC,EAAE,OAAO,CAAA;KAAE,GAClD,OAAO,CAAC,MAAM,EAAE,CAAC;IAad,KAAK,IAAI,OAAO,CAAC,WAAW,CAAC;IAQ7B,QAAQ,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAanC,OAAO,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,gBAAgB,KAAK,IAAI,GAAG,MAAM,IAAI;IAOhE,SAAS,CAAC,KAAK,EAAE,gBAAgB,GAAG,IAAI;CAMzC"}
@@ -1,392 +0,0 @@
1
- // ============================================================
2
- // Remote Environment Adapter
3
- // ============================================================
4
- // Implements the Environment interface over WebSocket.
5
- // Connects to any compatible signal server (hosted or self-hosted).
6
- //
7
- // From a colony's perspective, this is identical to
8
- // FilesystemEnvironment — it deposits, observes, claims.
9
- // The network transport is invisible.
10
- // ============================================================
11
- import { WebSocket } from 'ws';
12
- export class RemoteEnvironment {
13
- name;
14
- config;
15
- ws = null;
16
- authenticated = false;
17
- pending = new Map();
18
- subscriptions = new Map();
19
- eventListeners = [];
20
- idCounter = 0;
21
- reconnectAttempts = 0;
22
- reconnectTimer;
23
- connectPromise = null;
24
- closed = false;
25
- constructor(config) {
26
- this.name = config.name ?? `remote:${config.project}`;
27
- this.config = {
28
- url: config.url,
29
- apiKey: config.apiKey,
30
- project: config.project,
31
- colony: config.colony,
32
- publicKey: config.publicKey,
33
- connectTimeout: config.connectTimeout ?? 10_000,
34
- requestTimeout: config.requestTimeout ?? 30_000,
35
- autoReconnect: config.autoReconnect ?? true,
36
- maxReconnectAttempts: config.maxReconnectAttempts ?? Infinity,
37
- };
38
- }
39
- // ----------------------------------------------------------
40
- // Connection management
41
- // ----------------------------------------------------------
42
- nextId() {
43
- return `req_${++this.idCounter}_${Date.now().toString(36)}`;
44
- }
45
- async connect() {
46
- if (this.ws?.readyState === WebSocket.OPEN && this.authenticated)
47
- return;
48
- if (this.connectPromise)
49
- return this.connectPromise;
50
- this.connectPromise = this.doConnect();
51
- try {
52
- await this.connectPromise;
53
- }
54
- finally {
55
- this.connectPromise = null;
56
- }
57
- }
58
- doConnect() {
59
- return new Promise((resolve, reject) => {
60
- const timeout = setTimeout(() => {
61
- reject(new Error(`Connection to ${this.config.url} timed out`));
62
- this.ws?.close();
63
- }, this.config.connectTimeout);
64
- this.ws = new WebSocket(this.config.url);
65
- this.ws.on('open', async () => {
66
- clearTimeout(timeout);
67
- try {
68
- await this.authenticate();
69
- this.reconnectAttempts = 0;
70
- await this.resubscribeAll();
71
- resolve();
72
- }
73
- catch (err) {
74
- reject(err);
75
- }
76
- });
77
- this.ws.on('message', (data) => {
78
- this.handleMessage(data);
79
- });
80
- this.ws.on('close', () => {
81
- this.authenticated = false;
82
- this.rejectAllPending('Connection closed');
83
- if (this.config.autoReconnect && !this.closed) {
84
- this.scheduleReconnect();
85
- }
86
- });
87
- this.ws.on('error', (err) => {
88
- clearTimeout(timeout);
89
- if (!this.authenticated) {
90
- reject(err);
91
- }
92
- });
93
- });
94
- }
95
- async authenticate() {
96
- const msg = {
97
- type: 'auth',
98
- apiKey: this.config.apiKey,
99
- project: this.config.project,
100
- colony: this.config.colony,
101
- publicKey: this.config.publicKey,
102
- };
103
- this.send(msg);
104
- return new Promise((resolve, reject) => {
105
- const timeout = setTimeout(() => reject(new Error('Auth timeout')), 5_000);
106
- const handler = (data) => {
107
- const parsed = JSON.parse(data.toString());
108
- if (parsed.type === 'authenticated') {
109
- clearTimeout(timeout);
110
- this.authenticated = true;
111
- this.ws?.removeListener('message', handler);
112
- resolve();
113
- }
114
- else if (parsed.type === 'error' && parsed.code === 'AUTH_FAILED') {
115
- clearTimeout(timeout);
116
- this.ws?.removeListener('message', handler);
117
- reject(new Error(`Authentication failed: ${parsed.message}`));
118
- }
119
- };
120
- this.ws.on('message', handler);
121
- });
122
- }
123
- scheduleReconnect() {
124
- if (this.reconnectAttempts >= this.config.maxReconnectAttempts)
125
- return;
126
- const delay = Math.min(1000 * Math.pow(2, this.reconnectAttempts), 30_000);
127
- this.reconnectAttempts++;
128
- this.reconnectTimer = setTimeout(() => {
129
- this.connect().catch(() => { });
130
- }, delay);
131
- }
132
- async resubscribeAll() {
133
- for (const [clientSubId, entry] of this.subscriptions) {
134
- try {
135
- const result = await this.request({
136
- type: 'subscribe',
137
- id: this.nextId(),
138
- query: entry.query,
139
- });
140
- entry.serverSubId = result.subscriptionId;
141
- }
142
- catch {
143
- // Subscription will be retried on next reconnect
144
- }
145
- }
146
- }
147
- async close() {
148
- this.closed = true;
149
- if (this.reconnectTimer)
150
- clearTimeout(this.reconnectTimer);
151
- this.rejectAllPending('Environment closed');
152
- this.subscriptions.clear();
153
- if (this.ws) {
154
- this.ws.close();
155
- this.ws = null;
156
- }
157
- }
158
- // ----------------------------------------------------------
159
- // Message handling
160
- // ----------------------------------------------------------
161
- send(msg) {
162
- if (!this.ws || this.ws.readyState !== WebSocket.OPEN) {
163
- throw new Error('Not connected to signal server');
164
- }
165
- this.ws.send(JSON.stringify(msg));
166
- }
167
- handleMessage(data) {
168
- let msg;
169
- try {
170
- msg = JSON.parse(data.toString());
171
- }
172
- catch {
173
- return;
174
- }
175
- if (msg.type === 'result' || msg.type === 'error') {
176
- const pending = this.pending.get(msg.id);
177
- if (!pending)
178
- return;
179
- this.pending.delete(msg.id);
180
- clearTimeout(pending.timer);
181
- if (msg.type === 'error') {
182
- pending.reject(new Error(`[${msg.code}] ${msg.message}`));
183
- }
184
- else {
185
- pending.resolve(msg.data);
186
- }
187
- }
188
- else if (msg.type === 'event') {
189
- const eventMsg = msg;
190
- for (const listener of this.eventListeners) {
191
- try {
192
- listener(eventMsg.data);
193
- }
194
- catch { /* don't crash */ }
195
- }
196
- }
197
- else if (msg.type === 'signal') {
198
- const push = msg;
199
- for (const entry of this.subscriptions.values()) {
200
- if (entry.serverSubId === push.subscriptionId) {
201
- try {
202
- entry.callback(push.signal);
203
- }
204
- catch { /* don't crash */ }
205
- }
206
- }
207
- }
208
- }
209
- request(msg) {
210
- return new Promise((resolve, reject) => {
211
- const timer = setTimeout(() => {
212
- this.pending.delete(msg.id);
213
- reject(new Error(`Request ${msg.type} timed out after ${this.config.requestTimeout}ms`));
214
- }, this.config.requestTimeout);
215
- this.pending.set(msg.id, {
216
- resolve: resolve,
217
- reject,
218
- timer,
219
- });
220
- try {
221
- this.send(msg);
222
- }
223
- catch (err) {
224
- this.pending.delete(msg.id);
225
- clearTimeout(timer);
226
- reject(err);
227
- }
228
- });
229
- }
230
- rejectAllPending(reason) {
231
- for (const [id, pending] of this.pending) {
232
- clearTimeout(pending.timer);
233
- pending.reject(new Error(reason));
234
- }
235
- this.pending.clear();
236
- }
237
- async ensureConnected() {
238
- if (this.ws?.readyState === WebSocket.OPEN && this.authenticated)
239
- return;
240
- await this.connect();
241
- }
242
- // ----------------------------------------------------------
243
- // Environment interface
244
- // ----------------------------------------------------------
245
- async observe(query) {
246
- await this.ensureConnected();
247
- const result = await this.request({
248
- type: 'observe',
249
- id: this.nextId(),
250
- query: toSerializableQuery(query),
251
- });
252
- return result ?? [];
253
- }
254
- async deposit(input) {
255
- await this.ensureConnected();
256
- return this.request({
257
- type: 'deposit',
258
- id: this.nextId(),
259
- signal: {
260
- type: input.type,
261
- payload: input.payload,
262
- meta: input.meta ? {
263
- deposited_by: input.meta.deposited_by,
264
- concentration: input.meta.concentration,
265
- ttl: input.meta.ttl,
266
- tags: input.meta.tags,
267
- caused_by: input.meta.caused_by,
268
- signature: input.meta.signature,
269
- signer: input.meta.signer,
270
- } : undefined,
271
- },
272
- });
273
- }
274
- async withdraw(signalId) {
275
- await this.ensureConnected();
276
- await this.request({
277
- type: 'withdraw',
278
- id: this.nextId(),
279
- signalId,
280
- });
281
- }
282
- async claim(signalId, claimant, leaseDuration) {
283
- await this.ensureConnected();
284
- return this.request({
285
- type: 'claim',
286
- id: this.nextId(),
287
- signalId,
288
- claimant,
289
- leaseDuration,
290
- });
291
- }
292
- async release(signalId) {
293
- await this.ensureConnected();
294
- await this.request({
295
- type: 'release',
296
- id: this.nextId(),
297
- signalId,
298
- });
299
- }
300
- watch(query, callback) {
301
- const clientSubId = `sub_${++this.idCounter}`;
302
- const entry = {
303
- query: toSerializableQuery(query),
304
- callback,
305
- };
306
- this.subscriptions.set(clientSubId, entry);
307
- // Send subscribe request (async, fire-and-forget from caller's perspective)
308
- this.ensureConnected().then(() => {
309
- return this.request({
310
- type: 'subscribe',
311
- id: this.nextId(),
312
- query: entry.query,
313
- });
314
- }).then((result) => {
315
- entry.serverSubId = result.subscriptionId;
316
- }).catch(() => {
317
- // Will be retried on reconnect
318
- });
319
- return {
320
- unsubscribe: () => {
321
- const sub = this.subscriptions.get(clientSubId);
322
- this.subscriptions.delete(clientSubId);
323
- if (sub?.serverSubId && this.ws?.readyState === WebSocket.OPEN) {
324
- this.send({
325
- type: 'unsubscribe',
326
- id: this.nextId(),
327
- subscriptionId: sub.serverSubId,
328
- });
329
- }
330
- },
331
- };
332
- }
333
- async history(query) {
334
- await this.ensureConnected();
335
- const result = await this.request({
336
- type: 'history',
337
- id: this.nextId(),
338
- query: {
339
- ...toSerializableQuery(query),
340
- includeWithdrawn: query.includeWithdrawn,
341
- },
342
- });
343
- return result ?? [];
344
- }
345
- async decay() {
346
- await this.ensureConnected();
347
- return this.request({
348
- type: 'decay',
349
- id: this.nextId(),
350
- });
351
- }
352
- async snapshot() {
353
- await this.ensureConnected();
354
- const result = await this.request({
355
- type: 'snapshot',
356
- id: this.nextId(),
357
- });
358
- return result ?? [];
359
- }
360
- // ----------------------------------------------------------
361
- // Event forwarding (colony → signal server → dashboard)
362
- // ----------------------------------------------------------
363
- onEvent(listener) {
364
- this.eventListeners.push(listener);
365
- return () => {
366
- this.eventListeners = this.eventListeners.filter(l => l !== listener);
367
- };
368
- }
369
- emitEvent(event) {
370
- if (this.ws?.readyState !== WebSocket.OPEN)
371
- return;
372
- try {
373
- this.send({ type: 'event', data: event });
374
- }
375
- catch { /* best effort */ }
376
- }
377
- }
378
- // ----------------------------------------------------------
379
- // Helpers
380
- // ----------------------------------------------------------
381
- function toSerializableQuery(query) {
382
- return {
383
- type: query.type,
384
- minConcentration: query.minConcentration,
385
- unclaimed: query.unclaimed,
386
- tags: query.tags,
387
- after: query.after,
388
- limit: query.limit,
389
- // Note: query.filter (function) is dropped — cannot serialize
390
- };
391
- }
392
- //# sourceMappingURL=adapter.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../../../src/environments/remote/adapter.ts"],"names":[],"mappings":"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"}
@@ -1,5 +0,0 @@
1
- export { RemoteEnvironment } from './adapter.js';
2
- export type { RemoteEnvConfig } from './adapter.js';
3
- export type { ClientMessage, ServerMessage, ResultMessage, ErrorMessage, SignalPush, AuthenticatedMessage, SerializableSignalQuery, SerializableSignalMeta, ObserveRequest, DepositRequest, WithdrawRequest, ClaimRequest, ReleaseRequest, SubscribeRequest, UnsubscribeRequest, SnapshotRequest, HistoryRequest, DecayRequest, AuthRequest, EventForward, } from './protocol.js';
4
- export { ErrorCodes } from './protocol.js';
5
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/environments/remote/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACjD,YAAY,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AACpD,YAAY,EACV,aAAa,EACb,aAAa,EACb,aAAa,EACb,YAAY,EACZ,UAAU,EACV,oBAAoB,EACpB,uBAAuB,EACvB,sBAAsB,EACtB,cAAc,EACd,cAAc,EACd,eAAe,EACf,YAAY,EACZ,cAAc,EACd,gBAAgB,EAChB,kBAAkB,EAClB,eAAe,EACf,cAAc,EACd,YAAY,EACZ,WAAW,EACX,YAAY,GACb,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC"}
@@ -1,3 +0,0 @@
1
- export { RemoteEnvironment } from './adapter.js';
2
- export { ErrorCodes } from './protocol.js';
3
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/environments/remote/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAwBjD,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC"}