@principal-ai/control-tower-core 0.2.1 → 0.3.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.
Files changed (45) hide show
  1. package/dist/client/BaseClient.d.ts +23 -0
  2. package/dist/client/BaseClient.d.ts.map +1 -1
  3. package/dist/client/BaseClient.js +60 -0
  4. package/dist/client/PresenceClient.d.ts +43 -8
  5. package/dist/client/PresenceClient.d.ts.map +1 -1
  6. package/dist/client/PresenceClient.js +72 -18
  7. package/dist/generated/client-connection-auth.types.d.ts +312 -0
  8. package/dist/generated/client-connection-auth.types.d.ts.map +1 -0
  9. package/dist/generated/client-connection-auth.types.js +11 -0
  10. package/dist/generated/control-tower-execution.types.d.ts +445 -0
  11. package/dist/generated/control-tower-execution.types.d.ts.map +1 -0
  12. package/dist/generated/control-tower-execution.types.js +11 -0
  13. package/dist/index.d.ts +2 -2
  14. package/dist/index.d.ts.map +1 -1
  15. package/dist/index.js.map +6 -6
  16. package/dist/index.mjs +94 -7
  17. package/dist/index.mjs.map +6 -6
  18. package/dist/server/BaseServer.d.ts +18 -1
  19. package/dist/server/BaseServer.d.ts.map +1 -1
  20. package/dist/server/BaseServer.js +15 -1
  21. package/dist/server/ServerBuilder.d.ts +22 -1
  22. package/dist/server/ServerBuilder.d.ts.map +1 -1
  23. package/dist/server/ServerBuilder.js +24 -0
  24. package/dist/server/index.d.ts +1 -1
  25. package/dist/server/index.d.ts.map +1 -1
  26. package/dist/telemetry/EventValidationIntegration.d.ts +135 -0
  27. package/dist/telemetry/EventValidationIntegration.d.ts.map +1 -0
  28. package/dist/telemetry/EventValidationIntegration.js +253 -0
  29. package/dist/telemetry/EventValidationIntegration.test.d.ts +7 -0
  30. package/dist/telemetry/EventValidationIntegration.test.d.ts.map +1 -0
  31. package/dist/telemetry/EventValidationIntegration.test.js +322 -0
  32. package/dist/telemetry/TelemetryCapture.d.ts +268 -0
  33. package/dist/telemetry/TelemetryCapture.d.ts.map +1 -0
  34. package/dist/telemetry/TelemetryCapture.js +263 -0
  35. package/dist/telemetry/TelemetryCapture.test.d.ts +7 -0
  36. package/dist/telemetry/TelemetryCapture.test.d.ts.map +1 -0
  37. package/dist/telemetry/TelemetryCapture.test.js +396 -0
  38. package/dist/telemetry-example.d.ts +33 -0
  39. package/dist/telemetry-example.d.ts.map +1 -0
  40. package/dist/telemetry-example.js +124 -0
  41. package/dist/types/index.d.ts +1 -1
  42. package/dist/types/index.d.ts.map +1 -1
  43. package/dist/types/presence.d.ts +69 -0
  44. package/dist/types/presence.d.ts.map +1 -1
  45. package/package.json +1 -1
@@ -0,0 +1,33 @@
1
+ /**
2
+ * Example: Using Generated Event Types
3
+ *
4
+ * This demonstrates how to use the generated types for type-safe telemetry
5
+ * in the Control Tower server.
6
+ */
7
+ /**
8
+ * Example usage in message handler
9
+ */
10
+ export declare class MessageHandlerWithTelemetry {
11
+ private emit;
12
+ handleMessage(clientId: string, messageType: string, messageSize: number): void;
13
+ private validateMessage;
14
+ }
15
+ /**
16
+ * Example usage in client lifecycle manager
17
+ */
18
+ export declare class ClientLifecycleWithTelemetry {
19
+ private emit;
20
+ handleConnect(clientId: string, transportType: string): void;
21
+ handleAuthentication(clientId: string, userId: string, authMethod: string): void;
22
+ handleDisconnect(clientId: string, reason?: string, duration?: number): void;
23
+ }
24
+ /**
25
+ * Example with multiple event type handlers
26
+ */
27
+ export declare class ControlTowerWithTelemetry {
28
+ private messageEmit;
29
+ private clientEmit;
30
+ handleNewClient(clientId: string, transportType: string): void;
31
+ handleMessage(clientId: string, messageType: string): void;
32
+ }
33
+ //# sourceMappingURL=telemetry-example.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"telemetry-example.d.ts","sourceRoot":"","sources":["../src/telemetry-example.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AA+BH;;GAEG;AACH,qBAAa,2BAA2B;IACtC,OAAO,CAAC,IAAI,CAAiC;IAE7C,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM;IA0BxE,OAAO,CAAC,eAAe;CAIxB;AAED;;GAEG;AACH,qBAAa,4BAA4B;IACvC,OAAO,CAAC,IAAI,CAAkC;IAE9C,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM;IASrD,oBAAoB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM;IASzE,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM;CAQtE;AAED;;GAEG;AACH,qBAAa,yBAAyB;IACpC,OAAO,CAAC,WAAW,CAAiC;IACpD,OAAO,CAAC,UAAU,CAAkC;IAEpD,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM;IASvD,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM;CAWpD"}
@@ -0,0 +1,124 @@
1
+ "use strict";
2
+ /**
3
+ * Example: Using Generated Event Types
4
+ *
5
+ * This demonstrates how to use the generated types for type-safe telemetry
6
+ * in the Control Tower server.
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.ControlTowerWithTelemetry = exports.ClientLifecycleWithTelemetry = exports.MessageHandlerWithTelemetry = void 0;
10
+ /**
11
+ * Type-safe emitter for message handler events
12
+ */
13
+ function createMessageHandlerEmitter() {
14
+ return (eventName, attributes) => {
15
+ // In production, this would emit to OpenTelemetry or your observability platform
16
+ console.log(`[MessageHandler] ${eventName}`, attributes);
17
+ };
18
+ }
19
+ /**
20
+ * Type-safe emitter for client lifecycle events
21
+ */
22
+ function createClientLifecycleEmitter() {
23
+ return (eventName, attributes) => {
24
+ console.log(`[ClientLifecycle] ${eventName}`, attributes);
25
+ };
26
+ }
27
+ /**
28
+ * Example usage in message handler
29
+ */
30
+ class MessageHandlerWithTelemetry {
31
+ constructor() {
32
+ this.emit = createMessageHandlerEmitter();
33
+ }
34
+ handleMessage(clientId, messageType, messageSize) {
35
+ // ✅ Type-safe: TypeScript knows the exact attributes for this event
36
+ this.emit('message.received', {
37
+ 'client.id': clientId,
38
+ 'message.type': messageType,
39
+ 'message.size': messageSize, // Optional field
40
+ });
41
+ // Validate message...
42
+ const isValid = this.validateMessage(messageType);
43
+ if (isValid) {
44
+ this.emit('message.validated', {
45
+ 'client.id': clientId,
46
+ 'message.type': messageType,
47
+ });
48
+ }
49
+ else {
50
+ this.emit('message.validation_failed', {
51
+ 'client.id': clientId,
52
+ 'message.type': messageType,
53
+ 'error.message': 'Invalid message schema',
54
+ 'error.field': 'payload', // Optional field
55
+ });
56
+ }
57
+ }
58
+ validateMessage(messageType) {
59
+ // Mock validation
60
+ return messageType !== 'invalid';
61
+ }
62
+ }
63
+ exports.MessageHandlerWithTelemetry = MessageHandlerWithTelemetry;
64
+ /**
65
+ * Example usage in client lifecycle manager
66
+ */
67
+ class ClientLifecycleWithTelemetry {
68
+ constructor() {
69
+ this.emit = createClientLifecycleEmitter();
70
+ }
71
+ handleConnect(clientId, transportType) {
72
+ // ✅ Type-safe connection event
73
+ this.emit('client.connected', {
74
+ 'client.id': clientId,
75
+ 'transport.type': transportType,
76
+ 'connection.time': Date.now(),
77
+ });
78
+ }
79
+ handleAuthentication(clientId, userId, authMethod) {
80
+ // ✅ Type-safe authentication event
81
+ this.emit('client.authenticated', {
82
+ 'client.id': clientId,
83
+ 'user.id': userId,
84
+ 'auth.method': authMethod, // Optional field
85
+ });
86
+ }
87
+ handleDisconnect(clientId, reason, duration) {
88
+ // ✅ Type-safe disconnection event
89
+ this.emit('client.disconnected', {
90
+ 'client.id': clientId,
91
+ 'disconnect.reason': reason, // Optional field
92
+ 'session.duration': duration, // Optional field
93
+ });
94
+ }
95
+ }
96
+ exports.ClientLifecycleWithTelemetry = ClientLifecycleWithTelemetry;
97
+ /**
98
+ * Example with multiple event type handlers
99
+ */
100
+ class ControlTowerWithTelemetry {
101
+ constructor() {
102
+ this.messageEmit = createMessageHandlerEmitter();
103
+ this.clientEmit = createClientLifecycleEmitter();
104
+ // ❌ TypeScript error: can't use client events with message emitter
105
+ // handleWrongEvent() {
106
+ // this.messageEmit('client.connected', { ... }); // Error!
107
+ // }
108
+ }
109
+ handleNewClient(clientId, transportType) {
110
+ // Each emitter is type-safe to its specific events
111
+ this.clientEmit('client.connected', {
112
+ 'client.id': clientId,
113
+ 'transport.type': transportType,
114
+ 'connection.time': Date.now(),
115
+ });
116
+ }
117
+ handleMessage(clientId, messageType) {
118
+ this.messageEmit('message.received', {
119
+ 'client.id': clientId,
120
+ 'message.type': messageType,
121
+ });
122
+ }
123
+ }
124
+ exports.ControlTowerWithTelemetry = ControlTowerWithTelemetry;
@@ -21,5 +21,5 @@ export type MessageHandler = (message: Message) => void | Promise<void>;
21
21
  export type ErrorHandler = (error: Error) => void;
22
22
  export type CloseHandler = (code: number, reason: string) => void;
23
23
  export { BroadcastOptions, BroadcastResult, ClientPredicate, ExperimentalFeatureConfig, ExperimentalFeatureError, ExperimentalUsageEvent, } from "./experimental.js";
24
- export { ActivityUpdate, DeviceInfo, PresenceChangeEvent, PresenceConfig, PresenceStatus, UserPresence, } from "./presence.js";
24
+ export { ActivityUpdate, DeviceInfo, PresenceActionResponse, PresenceChangeEvent, PresenceConfig, PresenceGetRepoUsersResponse, PresenceGetUserResponse, PresenceGetUsersResponse, PresenceStats, PresenceStatus, RepositorySession, SerializableUserPresence, UserPresence, } from "./presence.js";
25
25
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,mBAAmB,EACnB,kBAAkB,EAClB,UAAU,EACV,SAAS,EACT,YAAY,GACZ,MAAM,WAAW,CAAC;AACnB,OAAO,EACN,SAAS,EACT,iBAAiB,EACjB,WAAW,EACX,mBAAmB,EACnB,KAAK,EACL,SAAS,EACT,UAAU,EACV,eAAe,EACf,cAAc,GACd,MAAM,aAAa,CAAC;AACrB,OAAO,EACN,IAAI,EACJ,YAAY,EACZ,aAAa,EACb,WAAW,EACX,SAAS,EACT,QAAQ,GACR,MAAM,WAAW,CAAC;AACnB,OAAO,EACN,oBAAoB,EACpB,IAAI,EACJ,UAAU,EACV,cAAc,EACd,SAAS,EACT,QAAQ,EACR,qBAAqB,EACrB,kBAAkB,EAClB,UAAU,GACV,MAAM,WAAW,CAAC;AAEnB,MAAM,MAAM,eAAe,GACxB,YAAY,GACZ,WAAW,GACX,eAAe,GACf,cAAc,CAAC;AAElB,MAAM,WAAW,iBAAiB;IACjC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,OAAO;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AACxE,MAAM,MAAM,YAAY,GAAG,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;AAClD,MAAM,MAAM,YAAY,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;AAElE,OAAO,EACN,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,yBAAyB,EACzB,wBAAwB,EACxB,sBAAsB,GACtB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACN,cAAc,EACd,UAAU,EACV,mBAAmB,EACnB,cAAc,EACd,cAAc,EACd,YAAY,GACZ,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,mBAAmB,EACnB,kBAAkB,EAClB,UAAU,EACV,SAAS,EACT,YAAY,GACZ,MAAM,WAAW,CAAC;AACnB,OAAO,EACN,SAAS,EACT,iBAAiB,EACjB,WAAW,EACX,mBAAmB,EACnB,KAAK,EACL,SAAS,EACT,UAAU,EACV,eAAe,EACf,cAAc,GACd,MAAM,aAAa,CAAC;AACrB,OAAO,EACN,IAAI,EACJ,YAAY,EACZ,aAAa,EACb,WAAW,EACX,SAAS,EACT,QAAQ,GACR,MAAM,WAAW,CAAC;AACnB,OAAO,EACN,oBAAoB,EACpB,IAAI,EACJ,UAAU,EACV,cAAc,EACd,SAAS,EACT,QAAQ,EACR,qBAAqB,EACrB,kBAAkB,EAClB,UAAU,GACV,MAAM,WAAW,CAAC;AAEnB,MAAM,MAAM,eAAe,GACxB,YAAY,GACZ,WAAW,GACX,eAAe,GACf,cAAc,CAAC;AAElB,MAAM,WAAW,iBAAiB;IACjC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,OAAO;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AACxE,MAAM,MAAM,YAAY,GAAG,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;AAClD,MAAM,MAAM,YAAY,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;AAElE,OAAO,EACN,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,yBAAyB,EACzB,wBAAwB,EACxB,sBAAsB,GACtB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACN,cAAc,EACd,UAAU,EACV,sBAAsB,EACtB,mBAAmB,EACnB,cAAc,EACd,4BAA4B,EAC5B,uBAAuB,EACvB,wBAAwB,EACxB,aAAa,EACb,cAAc,EACd,iBAAiB,EACjB,wBAAwB,EACxB,YAAY,GACZ,MAAM,eAAe,CAAC"}
@@ -160,4 +160,73 @@ export interface ActivityUpdate {
160
160
  */
161
161
  metadata?: Record<string, unknown>;
162
162
  }
163
+ /**
164
+ * Repository session information (from RepositoryPresenceExtension)
165
+ */
166
+ export interface RepositorySession {
167
+ repoId: string;
168
+ branch: string;
169
+ openedAt: number;
170
+ lastActivity: number;
171
+ currentFile?: string;
172
+ hasUnsavedChanges?: boolean;
173
+ permissions: {
174
+ canRead: boolean;
175
+ canWrite: boolean;
176
+ canAdmin: boolean;
177
+ };
178
+ agentId: string;
179
+ clientType?: "desktop" | "web";
180
+ }
181
+ /**
182
+ * Serializable user presence (Maps converted to plain objects for JSON transport)
183
+ */
184
+ export interface SerializableUserPresence {
185
+ userId: string;
186
+ status: PresenceStatus;
187
+ devices: Record<string, DeviceInfo>;
188
+ firstConnectedAt: number;
189
+ lastActivity: number;
190
+ metadata?: Record<string, unknown>;
191
+ openRepositories?: RepositorySession[];
192
+ activeRepository?: string;
193
+ visible?: boolean;
194
+ statusMessage?: string;
195
+ }
196
+ /**
197
+ * Presence statistics
198
+ */
199
+ export interface PresenceStats {
200
+ totalOnline: number;
201
+ totalRepositories: number;
202
+ activeCollaborations: number;
203
+ }
204
+ /**
205
+ * Response for presence:get_users request
206
+ */
207
+ export interface PresenceGetUsersResponse {
208
+ users: SerializableUserPresence[];
209
+ stats: PresenceStats;
210
+ }
211
+ /**
212
+ * Response for presence:get_user request
213
+ */
214
+ export interface PresenceGetUserResponse {
215
+ user: SerializableUserPresence | null;
216
+ }
217
+ /**
218
+ * Response for presence:get_repo_users request
219
+ */
220
+ export interface PresenceGetRepoUsersResponse {
221
+ repoId: string;
222
+ users: SerializableUserPresence[];
223
+ totalUsers: number;
224
+ }
225
+ /**
226
+ * Generic response for presence action requests
227
+ */
228
+ export interface PresenceActionResponse {
229
+ success: boolean;
230
+ error?: string;
231
+ }
163
232
  //# sourceMappingURL=presence.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"presence.d.ts","sourceRoot":"","sources":["../../src/types/presence.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,MAAM,GAAG,SAAS,CAAC;AAE3D;;GAEG;AACH,MAAM,WAAW,UAAU;IAC1B;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,YAAY,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAED;;;;GAIG;AACH,MAAM,WAAW,YAAY;IAC5B;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;;;;OAKG;IACH,MAAM,EAAE,cAAc,CAAC;IAEvB;;OAEG;IACH,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAEjC;;OAEG;IACH,gBAAgB,EAAE,MAAM,CAAC;IAEzB;;OAEG;IACH,YAAY,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC9B;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;;OAGG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAE7B;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;OAGG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAE9B;;;OAGG;IACH,wBAAwB,CAAC,EAAE,OAAO,CAAC;CACnC;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IACnC;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,cAAc,EAAE,cAAc,CAAC;IAE/B;;OAEG;IACH,MAAM,EAAE,cAAc,CAAC;IAEvB;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,MAAM,CAAC,EACJ,WAAW,GACX,cAAc,GACd,UAAU,GACV,mBAAmB,GACnB,sBAAsB,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC9B;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,YAAY,CAAC,EAAE,WAAW,GAAG,SAAS,GAAG,aAAa,CAAC;IAEvD;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC"}
1
+ {"version":3,"file":"presence.d.ts","sourceRoot":"","sources":["../../src/types/presence.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@principal-ai/control-tower-core",
3
- "version": "0.2.1",
3
+ "version": "0.3.0",
4
4
  "description": "Centralized, runtime-agnostic library for real-time collaboration and synchronization",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.mjs",