@agenticros/core 0.5.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 (151) hide show
  1. package/LICENSE +192 -0
  2. package/README.md +88 -0
  3. package/dist/banner.d.ts +7 -0
  4. package/dist/banner.d.ts.map +1 -0
  5. package/dist/banner.js +25 -0
  6. package/dist/banner.js.map +1 -0
  7. package/dist/capabilities.d.ts +101 -0
  8. package/dist/capabilities.d.ts.map +1 -0
  9. package/dist/capabilities.js +240 -0
  10. package/dist/capabilities.js.map +1 -0
  11. package/dist/cmd-vel-twist.d.ts +9 -0
  12. package/dist/cmd-vel-twist.d.ts.map +1 -0
  13. package/dist/cmd-vel-twist.js +32 -0
  14. package/dist/cmd-vel-twist.js.map +1 -0
  15. package/dist/config.d.ts +1195 -0
  16. package/dist/config.d.ts.map +1 -0
  17. package/dist/config.js +427 -0
  18. package/dist/config.js.map +1 -0
  19. package/dist/discovery.d.ts +113 -0
  20. package/dist/discovery.d.ts.map +1 -0
  21. package/dist/discovery.js +141 -0
  22. package/dist/discovery.js.map +1 -0
  23. package/dist/find-robots-for.d.ts +85 -0
  24. package/dist/find-robots-for.d.ts.map +1 -0
  25. package/dist/find-robots-for.js +120 -0
  26. package/dist/find-robots-for.js.map +1 -0
  27. package/dist/index.d.ts +32 -0
  28. package/dist/index.d.ts.map +1 -0
  29. package/dist/index.js +20 -0
  30. package/dist/index.js.map +1 -0
  31. package/dist/memory/factory.d.ts +18 -0
  32. package/dist/memory/factory.d.ts.map +1 -0
  33. package/dist/memory/factory.js +51 -0
  34. package/dist/memory/factory.js.map +1 -0
  35. package/dist/memory/index.d.ts +3 -0
  36. package/dist/memory/index.d.ts.map +1 -0
  37. package/dist/memory/index.js +2 -0
  38. package/dist/memory/index.js.map +1 -0
  39. package/dist/memory/local/provider.d.ts +29 -0
  40. package/dist/memory/local/provider.d.ts.map +1 -0
  41. package/dist/memory/local/provider.js +202 -0
  42. package/dist/memory/local/provider.js.map +1 -0
  43. package/dist/memory/mem0/provider.d.ts +66 -0
  44. package/dist/memory/mem0/provider.d.ts.map +1 -0
  45. package/dist/memory/mem0/provider.js +310 -0
  46. package/dist/memory/mem0/provider.js.map +1 -0
  47. package/dist/memory/types.d.ts +91 -0
  48. package/dist/memory/types.d.ts.map +1 -0
  49. package/dist/memory/types.js +10 -0
  50. package/dist/memory/types.js.map +1 -0
  51. package/dist/mission-registry.d.ts +94 -0
  52. package/dist/mission-registry.d.ts.map +1 -0
  53. package/dist/mission-registry.js +123 -0
  54. package/dist/mission-registry.js.map +1 -0
  55. package/dist/mission-transcript-sink.d.ts +33 -0
  56. package/dist/mission-transcript-sink.d.ts.map +1 -0
  57. package/dist/mission-transcript-sink.js +76 -0
  58. package/dist/mission-transcript-sink.js.map +1 -0
  59. package/dist/mission.d.ts +281 -0
  60. package/dist/mission.d.ts.map +1 -0
  61. package/dist/mission.js +331 -0
  62. package/dist/mission.js.map +1 -0
  63. package/dist/planner/index.d.ts +84 -0
  64. package/dist/planner/index.d.ts.map +1 -0
  65. package/dist/planner/index.js +486 -0
  66. package/dist/planner/index.js.map +1 -0
  67. package/dist/robots.d.ts +133 -0
  68. package/dist/robots.d.ts.map +1 -0
  69. package/dist/robots.js +220 -0
  70. package/dist/robots.js.map +1 -0
  71. package/dist/topic-utils.d.ts +47 -0
  72. package/dist/topic-utils.d.ts.map +1 -0
  73. package/dist/topic-utils.js +136 -0
  74. package/dist/topic-utils.js.map +1 -0
  75. package/dist/transport/factory.d.ts +10 -0
  76. package/dist/transport/factory.d.ts.map +1 -0
  77. package/dist/transport/factory.js +40 -0
  78. package/dist/transport/factory.js.map +1 -0
  79. package/dist/transport/local/conversion.d.ts +30 -0
  80. package/dist/transport/local/conversion.d.ts.map +1 -0
  81. package/dist/transport/local/conversion.js +340 -0
  82. package/dist/transport/local/conversion.js.map +1 -0
  83. package/dist/transport/local/entities.d.ts +34 -0
  84. package/dist/transport/local/entities.d.ts.map +1 -0
  85. package/dist/transport/local/entities.js +108 -0
  86. package/dist/transport/local/entities.js.map +1 -0
  87. package/dist/transport/local/transport.d.ts +53 -0
  88. package/dist/transport/local/transport.d.ts.map +1 -0
  89. package/dist/transport/local/transport.js +344 -0
  90. package/dist/transport/local/transport.js.map +1 -0
  91. package/dist/transport/rosbridge/actions.d.ts +30 -0
  92. package/dist/transport/rosbridge/actions.d.ts.map +1 -0
  93. package/dist/transport/rosbridge/actions.js +61 -0
  94. package/dist/transport/rosbridge/actions.js.map +1 -0
  95. package/dist/transport/rosbridge/adapter.d.ts +29 -0
  96. package/dist/transport/rosbridge/adapter.d.ts.map +1 -0
  97. package/dist/transport/rosbridge/adapter.js +108 -0
  98. package/dist/transport/rosbridge/adapter.js.map +1 -0
  99. package/dist/transport/rosbridge/client.d.ts +55 -0
  100. package/dist/transport/rosbridge/client.d.ts.map +1 -0
  101. package/dist/transport/rosbridge/client.js +375 -0
  102. package/dist/transport/rosbridge/client.js.map +1 -0
  103. package/dist/transport/rosbridge/services.d.ts +14 -0
  104. package/dist/transport/rosbridge/services.d.ts.map +1 -0
  105. package/dist/transport/rosbridge/services.js +25 -0
  106. package/dist/transport/rosbridge/services.js.map +1 -0
  107. package/dist/transport/rosbridge/topics.d.ts +28 -0
  108. package/dist/transport/rosbridge/topics.d.ts.map +1 -0
  109. package/dist/transport/rosbridge/topics.js +59 -0
  110. package/dist/transport/rosbridge/topics.js.map +1 -0
  111. package/dist/transport/rosbridge/types.d.ts +87 -0
  112. package/dist/transport/rosbridge/types.d.ts.map +1 -0
  113. package/dist/transport/rosbridge/types.js +6 -0
  114. package/dist/transport/rosbridge/types.js.map +1 -0
  115. package/dist/transport/transport.d.ts +39 -0
  116. package/dist/transport/transport.d.ts.map +1 -0
  117. package/dist/transport/transport.js +2 -0
  118. package/dist/transport/transport.js.map +1 -0
  119. package/dist/transport/types.d.ts +100 -0
  120. package/dist/transport/types.d.ts.map +1 -0
  121. package/dist/transport/types.js +5 -0
  122. package/dist/transport/types.js.map +1 -0
  123. package/dist/transport/webrtc/signaling-client.d.ts +38 -0
  124. package/dist/transport/webrtc/signaling-client.d.ts.map +1 -0
  125. package/dist/transport/webrtc/signaling-client.js +161 -0
  126. package/dist/transport/webrtc/signaling-client.js.map +1 -0
  127. package/dist/transport/webrtc/signaling-types.d.ts +112 -0
  128. package/dist/transport/webrtc/signaling-types.d.ts.map +1 -0
  129. package/dist/transport/webrtc/signaling-types.js +8 -0
  130. package/dist/transport/webrtc/signaling-types.js.map +1 -0
  131. package/dist/transport/webrtc/transport.d.ts +67 -0
  132. package/dist/transport/webrtc/transport.d.ts.map +1 -0
  133. package/dist/transport/webrtc/transport.js +406 -0
  134. package/dist/transport/webrtc/transport.js.map +1 -0
  135. package/dist/transport/zenoh/adapter.d.ts +47 -0
  136. package/dist/transport/zenoh/adapter.d.ts.map +1 -0
  137. package/dist/transport/zenoh/adapter.js +296 -0
  138. package/dist/transport/zenoh/adapter.js.map +1 -0
  139. package/dist/transport/zenoh/cdr.d.ts +17 -0
  140. package/dist/transport/zenoh/cdr.d.ts.map +1 -0
  141. package/dist/transport/zenoh/cdr.js +170 -0
  142. package/dist/transport/zenoh/cdr.js.map +1 -0
  143. package/dist/transport/zenoh/keys.d.ts +21 -0
  144. package/dist/transport/zenoh/keys.d.ts.map +1 -0
  145. package/dist/transport/zenoh/keys.js +44 -0
  146. package/dist/transport/zenoh/keys.js.map +1 -0
  147. package/dist/transport-pool.d.ts +74 -0
  148. package/dist/transport-pool.d.ts.map +1 -0
  149. package/dist/transport-pool.js +135 -0
  150. package/dist/transport-pool.js.map +1 -0
  151. package/package.json +80 -0
@@ -0,0 +1,74 @@
1
+ /**
2
+ * `TransportPool` — Phase 1.d shared multi-robot transport pool.
3
+ *
4
+ * Lives in `@agenticros/core` so every adapter (Claude Code, Gemini,
5
+ * future ones) can route per-robot transports through the same battle-
6
+ * tested implementation. OpenClaw's plugin uses a thinner add-on
7
+ * because its existing service has long-lived eager-connect / poll
8
+ * semantics that don't compose cleanly with a generic pool.
9
+ *
10
+ * Semantics:
11
+ *
12
+ * - Pool key is `__global__` when the robot has no per-robot
13
+ * `transport` override in config — every robot then shares one
14
+ * connection (the legacy / single-transport behaviour). Opting
15
+ * into `config.robots[]` is NOT a breaking change for that path.
16
+ *
17
+ * - Pool key is `robot.id` when the robot DOES declare an override.
18
+ * A distinct transport is materialised on first use and cached
19
+ * for subsequent tool calls.
20
+ *
21
+ * - Acquires are lazy — the constructor never opens a connection.
22
+ * The first call to `acquire()` for a given key triggers the
23
+ * create + connect dance, gated by `connectWithTimeout()`.
24
+ *
25
+ * - Concurrent first-acquires on the same key share one in-flight
26
+ * connect promise — important when an MCP server gets two
27
+ * near-simultaneous tool calls right after startup.
28
+ *
29
+ * - Cached entries that drop to a non-`connected` state are
30
+ * rebuilt on the next acquire (self-heal — matches the pre-pool
31
+ * `connect()` behaviour).
32
+ *
33
+ * - `disconnectAll()` drains every entry and is safe to call on
34
+ * SIGINT/SIGTERM. Errors on individual disconnects are swallowed
35
+ * so one misbehaving transport can't block the others from
36
+ * cleaning up.
37
+ *
38
+ * The default factory is `createTransport` from `./transport/factory`.
39
+ * Adapter shutdowns / tests can inject a fake factory by passing one
40
+ * to the constructor — see packages/core/src/__tests__/transport-pool.test.ts
41
+ * for the unit-test seam.
42
+ */
43
+ import type { AgenticROSConfig, ResolvedRobot, RosTransport, TransportConfig } from "./index.js";
44
+ export declare const TRANSPORT_POOL_GLOBAL_KEY = "__global__";
45
+ export type TransportFactory = (cfg: TransportConfig) => Promise<RosTransport>;
46
+ export declare class TransportPool {
47
+ private readonly factory;
48
+ private readonly entries;
49
+ /** Promises kept while a connection is in flight, so concurrent acquires share the same connect. */
50
+ private readonly inFlight;
51
+ constructor(factory?: TransportFactory);
52
+ /**
53
+ * Acquire (lazy-connect on first call) the transport for this robot.
54
+ * See the module docstring for the full key + caching contract.
55
+ */
56
+ acquire(config: AgenticROSConfig, robot: ResolvedRobot): Promise<RosTransport>;
57
+ /**
58
+ * Pre-warm the active robot's transport at server start — used by
59
+ * adapters that want to pay the connect-latency tax upfront instead
60
+ * of on the first tool call.
61
+ */
62
+ connectActive(config: AgenticROSConfig): Promise<void>;
63
+ /**
64
+ * Disconnect every transport in the pool. Safe to call multiple
65
+ * times. Errors on individual disconnects are swallowed.
66
+ */
67
+ disconnectAll(): Promise<void>;
68
+ /** Visible for tests: how many distinct transports are alive right now. */
69
+ get size(): number;
70
+ /** Visible for tests: list of pool keys currently cached. */
71
+ keys(): string[];
72
+ private acquireByKey;
73
+ }
74
+ //# sourceMappingURL=transport-pool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transport-pool.d.ts","sourceRoot":"","sources":["../src/transport-pool.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AAEH,OAAO,KAAK,EACV,gBAAgB,EAChB,aAAa,EACb,YAAY,EACZ,eAAe,EAChB,MAAM,YAAY,CAAC;AAUpB,eAAO,MAAM,yBAAyB,eAAe,CAAC;AAEtD,MAAM,MAAM,gBAAgB,GAAG,CAAC,GAAG,EAAE,eAAe,KAAK,OAAO,CAAC,YAAY,CAAC,CAAC;AAE/E,qBAAa,aAAa;IAKZ,OAAO,CAAC,QAAQ,CAAC,OAAO;IAJpC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAmC;IAC3D,oGAAoG;IACpG,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA4C;gBAExC,OAAO,GAAE,gBAAkC;IAExE;;;OAGG;IACG,OAAO,CAAC,MAAM,EAAE,gBAAgB,EAAE,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC;IAWpF;;;;OAIG;IACG,aAAa,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAK5D;;;OAGG;IACG,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAcpC,2EAA2E;IAC3E,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,6DAA6D;IAC7D,IAAI,IAAI,MAAM,EAAE;YAIF,YAAY;CAgC3B"}
@@ -0,0 +1,135 @@
1
+ /**
2
+ * `TransportPool` — Phase 1.d shared multi-robot transport pool.
3
+ *
4
+ * Lives in `@agenticros/core` so every adapter (Claude Code, Gemini,
5
+ * future ones) can route per-robot transports through the same battle-
6
+ * tested implementation. OpenClaw's plugin uses a thinner add-on
7
+ * because its existing service has long-lived eager-connect / poll
8
+ * semantics that don't compose cleanly with a generic pool.
9
+ *
10
+ * Semantics:
11
+ *
12
+ * - Pool key is `__global__` when the robot has no per-robot
13
+ * `transport` override in config — every robot then shares one
14
+ * connection (the legacy / single-transport behaviour). Opting
15
+ * into `config.robots[]` is NOT a breaking change for that path.
16
+ *
17
+ * - Pool key is `robot.id` when the robot DOES declare an override.
18
+ * A distinct transport is materialised on first use and cached
19
+ * for subsequent tool calls.
20
+ *
21
+ * - Acquires are lazy — the constructor never opens a connection.
22
+ * The first call to `acquire()` for a given key triggers the
23
+ * create + connect dance, gated by `connectWithTimeout()`.
24
+ *
25
+ * - Concurrent first-acquires on the same key share one in-flight
26
+ * connect promise — important when an MCP server gets two
27
+ * near-simultaneous tool calls right after startup.
28
+ *
29
+ * - Cached entries that drop to a non-`connected` state are
30
+ * rebuilt on the next acquire (self-heal — matches the pre-pool
31
+ * `connect()` behaviour).
32
+ *
33
+ * - `disconnectAll()` drains every entry and is safe to call on
34
+ * SIGINT/SIGTERM. Errors on individual disconnects are swallowed
35
+ * so one misbehaving transport can't block the others from
36
+ * cleaning up.
37
+ *
38
+ * The default factory is `createTransport` from `./transport/factory`.
39
+ * Adapter shutdowns / tests can inject a fake factory by passing one
40
+ * to the constructor — see packages/core/src/__tests__/transport-pool.test.ts
41
+ * for the unit-test seam.
42
+ */
43
+ import { createTransport, getTransportConfig, getTransportConfigForRobot, hasRobotTransportOverride, resolveRobot, } from "./index.js";
44
+ const CONNECT_TIMEOUT_MS = 15_000;
45
+ export const TRANSPORT_POOL_GLOBAL_KEY = "__global__";
46
+ export class TransportPool {
47
+ factory;
48
+ entries = new Map();
49
+ /** Promises kept while a connection is in flight, so concurrent acquires share the same connect. */
50
+ inFlight = new Map();
51
+ constructor(factory = createTransport) {
52
+ this.factory = factory;
53
+ }
54
+ /**
55
+ * Acquire (lazy-connect on first call) the transport for this robot.
56
+ * See the module docstring for the full key + caching contract.
57
+ */
58
+ async acquire(config, robot) {
59
+ const key = hasRobotTransportOverride(config, robot.id)
60
+ ? robot.id
61
+ : TRANSPORT_POOL_GLOBAL_KEY;
62
+ return this.acquireByKey(key, () => key === TRANSPORT_POOL_GLOBAL_KEY
63
+ ? getTransportConfig(config)
64
+ : getTransportConfigForRobot(config, robot.id));
65
+ }
66
+ /**
67
+ * Pre-warm the active robot's transport at server start — used by
68
+ * adapters that want to pay the connect-latency tax upfront instead
69
+ * of on the first tool call.
70
+ */
71
+ async connectActive(config) {
72
+ const robot = resolveRobot(config);
73
+ await this.acquire(config, robot);
74
+ }
75
+ /**
76
+ * Disconnect every transport in the pool. Safe to call multiple
77
+ * times. Errors on individual disconnects are swallowed.
78
+ */
79
+ async disconnectAll() {
80
+ const pending = [];
81
+ for (const t of this.entries.values()) {
82
+ pending.push(t.disconnect().catch(() => {
83
+ /* best-effort drain */
84
+ }));
85
+ }
86
+ this.entries.clear();
87
+ this.inFlight.clear();
88
+ await Promise.all(pending);
89
+ }
90
+ /** Visible for tests: how many distinct transports are alive right now. */
91
+ get size() {
92
+ return this.entries.size;
93
+ }
94
+ /** Visible for tests: list of pool keys currently cached. */
95
+ keys() {
96
+ return Array.from(this.entries.keys());
97
+ }
98
+ async acquireByKey(key, resolveCfg) {
99
+ const cached = this.entries.get(key);
100
+ if (cached && cached.getStatus() === "connected")
101
+ return cached;
102
+ // A second concurrent acquire on the same key joins the in-flight
103
+ // connect rather than starting a duplicate.
104
+ const flight = this.inFlight.get(key);
105
+ if (flight)
106
+ return flight;
107
+ if (cached) {
108
+ // Stale entry (e.g. router restarted under us). Drop it cleanly.
109
+ this.entries.delete(key);
110
+ cached.disconnect().catch(() => { });
111
+ }
112
+ const connectFlight = (async () => {
113
+ const cfg = resolveCfg();
114
+ const t = await this.factory(cfg);
115
+ await connectWithTimeout(t);
116
+ this.entries.set(key, t);
117
+ return t;
118
+ })();
119
+ this.inFlight.set(key, connectFlight);
120
+ try {
121
+ return await connectFlight;
122
+ }
123
+ finally {
124
+ this.inFlight.delete(key);
125
+ }
126
+ }
127
+ }
128
+ async function connectWithTimeout(t) {
129
+ const timeout = new Promise((_, reject) => {
130
+ setTimeout(() => reject(new Error(`Transport connection timed out after ${CONNECT_TIMEOUT_MS / 1000}s. ` +
131
+ "Is zenohd running? (e.g. ws://localhost:10000). Check config and adapter logs.")), CONNECT_TIMEOUT_MS);
132
+ });
133
+ await Promise.race([t.connect(), timeout]);
134
+ }
135
+ //# sourceMappingURL=transport-pool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transport-pool.js","sourceRoot":"","sources":["../src/transport-pool.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,80 @@
1
+ {
2
+ "name": "@agenticros/core",
3
+ "version": "0.5.0",
4
+ "type": "module",
5
+ "description": "AgenticROS core — platform-agnostic ROS2 transport, types, and config (the dep every AgenticROS skill imports).",
6
+ "keywords": [
7
+ "agenticros",
8
+ "ros2",
9
+ "robotics",
10
+ "zenoh",
11
+ "rosbridge",
12
+ "webrtc",
13
+ "skill-sdk"
14
+ ],
15
+ "homepage": "https://github.com/agenticros/agenticros#readme",
16
+ "bugs": "https://github.com/agenticros/agenticros/issues",
17
+ "repository": {
18
+ "type": "git",
19
+ "url": "git+https://github.com/agenticros/agenticros.git",
20
+ "directory": "packages/core"
21
+ },
22
+ "main": "./dist/index.js",
23
+ "types": "./dist/index.d.ts",
24
+ "exports": {
25
+ ".": {
26
+ "types": "./dist/index.d.ts",
27
+ "import": "./dist/index.js",
28
+ "default": "./dist/index.js"
29
+ }
30
+ },
31
+ "files": [
32
+ "dist/**/*.js",
33
+ "dist/**/*.d.ts",
34
+ "dist/**/*.js.map",
35
+ "dist/**/*.d.ts.map",
36
+ "!dist/**/__tests__/**",
37
+ "README.md",
38
+ "LICENSE"
39
+ ],
40
+ "publishConfig": {
41
+ "access": "public"
42
+ },
43
+ "engines": {
44
+ "node": ">=20"
45
+ },
46
+ "scripts": {
47
+ "build": "tsc",
48
+ "typecheck": "tsc --noEmit",
49
+ "test": "node --test \"dist/memory/__tests__/*.test.js\" \"dist/__tests__/*.test.js\"",
50
+ "prepublishOnly": "npm run build",
51
+ "pack:dry": "npm pack --dry-run"
52
+ },
53
+ "dependencies": {
54
+ "@eclipse-zenoh/zenoh-ts": "^1.9.0",
55
+ "@foxglove/cdr": "^3.5.0",
56
+ "@foxglove/rosmsg": "^4.2.2",
57
+ "@foxglove/rosmsg2-serialization": "^3.1.0",
58
+ "node-datachannel": "^0.12.0",
59
+ "ws": "^8.18.0",
60
+ "zod": "^3.24.0"
61
+ },
62
+ "optionalDependencies": {
63
+ "rclnodejs": "^1.8.1"
64
+ },
65
+ "peerDependencies": {
66
+ "mem0ai": "^2.0.0"
67
+ },
68
+ "peerDependenciesMeta": {
69
+ "mem0ai": {
70
+ "optional": true
71
+ }
72
+ },
73
+ "devDependencies": {
74
+ "@types/node": "^20.17.0",
75
+ "@types/ws": "^8.5.13",
76
+ "typescript": "^5.7.0"
77
+ },
78
+ "author": "PlaiPin",
79
+ "license": "Apache-2.0"
80
+ }