@elizaos/plugin-roblox 2.0.0-beta.1 → 2.0.3-beta.3

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 (49) hide show
  1. package/README.md +67 -130
  2. package/package.json +18 -10
  3. package/registry-entry.json +88 -0
  4. package/dist/__tests__/suite.d.ts +0 -7
  5. package/dist/__tests__/suite.d.ts.map +0 -1
  6. package/dist/actions/executeGameAction.d.ts +0 -4
  7. package/dist/actions/executeGameAction.d.ts.map +0 -1
  8. package/dist/actions/executeRobloxAction.d.ts +0 -4
  9. package/dist/actions/executeRobloxAction.d.ts.map +0 -1
  10. package/dist/actions/getPlayerInfo.d.ts +0 -4
  11. package/dist/actions/getPlayerInfo.d.ts.map +0 -1
  12. package/dist/actions/index.d.ts +0 -5
  13. package/dist/actions/index.d.ts.map +0 -1
  14. package/dist/actions/robloxAction.d.ts +0 -4
  15. package/dist/actions/robloxAction.d.ts.map +0 -1
  16. package/dist/actions/sendGameMessage.d.ts +0 -4
  17. package/dist/actions/sendGameMessage.d.ts.map +0 -1
  18. package/dist/actions/sendRobloxMessage.d.ts +0 -4
  19. package/dist/actions/sendRobloxMessage.d.ts.map +0 -1
  20. package/dist/client/RobloxClient.d.ts +0 -29
  21. package/dist/client/RobloxClient.d.ts.map +0 -1
  22. package/dist/client/index.d.ts +0 -2
  23. package/dist/client/index.d.ts.map +0 -1
  24. package/dist/generated/specs/specs.d.ts +0 -46
  25. package/dist/generated/specs/specs.d.ts.map +0 -1
  26. package/dist/index.browser.d.ts +0 -4
  27. package/dist/index.browser.d.ts.map +0 -1
  28. package/dist/index.d.ts +0 -6
  29. package/dist/index.d.ts.map +0 -1
  30. package/dist/index.js +0 -1058
  31. package/dist/index.js.map +0 -19
  32. package/dist/providers/gameStateProvider.d.ts +0 -3
  33. package/dist/providers/gameStateProvider.d.ts.map +0 -1
  34. package/dist/providers/index.d.ts +0 -5
  35. package/dist/providers/index.d.ts.map +0 -1
  36. package/dist/providers/robloxPlayerProvider.d.ts +0 -3
  37. package/dist/providers/robloxPlayerProvider.d.ts.map +0 -1
  38. package/dist/services/RobloxService.d.ts +0 -40
  39. package/dist/services/RobloxService.d.ts.map +0 -1
  40. package/dist/services/index.d.ts +0 -2
  41. package/dist/services/index.d.ts.map +0 -1
  42. package/dist/types/index.d.ts +0 -124
  43. package/dist/types/index.d.ts.map +0 -1
  44. package/dist/utils/config.d.ts +0 -11
  45. package/dist/utils/config.d.ts.map +0 -1
  46. package/dist/utils/index.d.ts +0 -2
  47. package/dist/utils/index.d.ts.map +0 -1
  48. package/dist/vitest.config.d.ts +0 -3
  49. package/dist/vitest.config.d.ts.map +0 -1
package/README.md CHANGED
@@ -1,186 +1,123 @@
1
1
  # @elizaos/plugin-roblox
2
2
 
3
- Roblox plugin for elizaOS v2.0.0 - Enables AI agents to communicate with Roblox games via the Open Cloud API.
3
+ Roblox Open Cloud integration for elizaOS agents: publish messages and game-side
4
+ action payloads to a Roblox experience, and look up Roblox players. Communication
5
+ is outbound (agent → Roblox); Open Cloud has no external subscribe endpoint, so
6
+ inbound player chat must be bridged from Roblox (see below).
4
7
 
5
- ## Features
6
-
7
- - **Messaging Service**: Cross-server communication with Roblox games
8
- - **DataStore Operations**: Persistent data storage for agents
9
- - **Player Management**: Look up player information by ID or username
10
- - **Game Actions**: Execute custom actions in-game
11
- - **Experience Info**: Retrieve game metadata and statistics
12
-
13
- ## Installation
14
-
15
- ### TypeScript
8
+ ## Install
16
9
 
17
10
  ```bash
18
- npm install @elizaos/plugin-roblox
19
- # or
20
11
  bun add @elizaos/plugin-roblox
12
+ # or
13
+ npm install @elizaos/plugin-roblox
21
14
  ```
22
- ## Quick Start
23
15
 
24
- ### TypeScript (elizaOS)
16
+ ## Use
25
17
 
26
18
  ```typescript
27
19
  import { robloxPlugin } from "@elizaos/plugin-roblox";
28
20
 
29
- // Add to your agent configuration
30
21
  const agent = {
31
22
  plugins: [robloxPlugin],
32
- // ... other config
23
+ // ...
33
24
  };
34
25
  ```
35
26
 
36
- ### Environment Variables
37
-
38
- | Variable | Required | Description |
39
- | ------------------------ | -------- | ---------------------------------------- |
40
- | `ROBLOX_API_KEY` | Yes | Roblox Open Cloud API key |
41
- | `ROBLOX_UNIVERSE_ID` | Yes | Universe ID of your experience |
42
- | `ROBLOX_PLACE_ID` | No | Specific place ID |
43
- | `ROBLOX_WEBHOOK_SECRET` | No | Secret for webhook validation |
44
- | `ROBLOX_MESSAGING_TOPIC` | No | Messaging topic (default: "eliza-agent") |
45
- | `ROBLOX_DRY_RUN` | No | Enable dry run mode (default: false) |
46
-
47
- ## Action
48
-
49
- ### ROBLOX_ACTION
50
-
51
- Route Roblox game integration through one compact action surface.
52
-
53
- Supported subactions:
54
-
55
- - `message`: send a message to all players or target player IDs
56
- - `execute`: publish a game-side action payload such as `spawn_entity`, `give_coins`, or `teleport`
57
- - `get_player`: look up Roblox player information by username or user ID
58
-
59
- **Examples:**
60
-
61
- - "Tell everyone in the game that there's a special event happening"
62
- - "Give player456 100 coins as a reward"
63
- - "Who is player 12345678?"
27
+ The service is unavailable unless both `ROBLOX_API_KEY` and
28
+ `ROBLOX_UNIVERSE_ID` are set, and the `ROBLOX` action only validates when both are
29
+ present.
64
30
 
65
- ## Providers
31
+ ### Environment variables
66
32
 
67
- ### roblox-game-state
33
+ | Variable | Required | Default | Description |
34
+ | ------------------------ | -------- | -------------- | ------------------------------------ |
35
+ | `ROBLOX_API_KEY` | Yes | — | Roblox Open Cloud API key |
36
+ | `ROBLOX_UNIVERSE_ID` | Yes | — | Universe ID of the experience |
37
+ | `ROBLOX_PLACE_ID` | No | — | Specific place ID |
38
+ | `ROBLOX_WEBHOOK_SECRET` | No | — | Secret exposed in config for external inbound bridges |
39
+ | `ROBLOX_MESSAGING_TOPIC` | No | `eliza-agent` | Messaging Service topic |
40
+ | `ROBLOX_DRY_RUN` | No | `false` | `"true"` suppresses publish calls |
68
41
 
69
- Provides information about the connected Roblox experience to the agent's context:
42
+ ## Plugin surface
70
43
 
71
- - Universe ID and Place ID
72
- - Experience name and statistics
73
- - Active player count
74
- - Creator information
75
- - Messaging topic configuration
44
+ - **Action `ROBLOX`** routes three subactions:
45
+ - `message` publish text to the messaging topic, optionally to specific player IDs (max 25)
46
+ - `execute` publish a named game-side action (`move_npc`, `give_coins`, `teleport`, `spawn_entity`, `start_event`, …) with parameters; regex patterns infer common actions from natural language
47
+ - `get_player` — look up a Roblox user by numeric ID or username (display name, ban status, creation date, avatar headshot)
48
+ - **Provider `roblox-game-state`** — injects connection state and experience metadata (universe/place ID, experience name, active players, visits, creator, messaging topic, dry-run flag) into agent context.
49
+ - **Service `RobloxService`** — singleton holding one `RobloxAgentManager` (and `RobloxClient`) per agent UUID.
76
50
 
77
- ## Services
78
-
79
- ### RobloxService
80
-
81
- Main service for managing Roblox connections and communication:
51
+ ### Direct service use
82
52
 
83
53
  ```typescript
84
- import { RobloxService, ROBLOX_SERVICE_NAME } from "@elizaos/plugin-roblox";
54
+ import { RobloxService } from "@elizaos/plugin-roblox";
85
55
 
86
- // Get service from runtime
87
- const service = runtime.getService<RobloxService>(ROBLOX_SERVICE_NAME);
56
+ const service = runtime.getService<RobloxService>(RobloxService.serviceType);
88
57
 
89
- // Send a message to all players
90
- await service.sendMessage(runtime.agentId, "Hello from Eliza!");
58
+ await service.sendMessage(runtime.agentId, "Hello from your agent!");
91
59
 
92
- // Execute a game action
93
60
  await service.executeAction(
94
61
  runtime.agentId,
95
- "spawn_item",
96
- { item: "sword", rarity: "legendary" },
97
- [12345678], // Target specific player
62
+ "spawn_entity",
63
+ { entityType: "dragon", location: "arena" },
64
+ [12345678], // target specific players (optional)
98
65
  );
99
66
  ```
100
67
 
101
- ## Roblox Game Integration
68
+ ## Receiving payloads in Roblox
102
69
 
103
- To receive messages from your Roblox game, you'll need to set up a Luau script that listens to the Messaging Service:
70
+ The agent publishes JSON to `ROBLOX_MESSAGING_TOPIC`. Subscribe in a Roblox
71
+ server script to react:
104
72
 
105
73
  ```lua
106
- -- Server script in Roblox Studio
107
74
  local MessagingService = game:GetService("MessagingService")
75
+ local HttpService = game:GetService("HttpService")
108
76
 
109
- local TOPIC = "eliza-agent" -- Must match ROBLOX_MESSAGING_TOPIC
77
+ local TOPIC = "eliza-agent" -- must match ROBLOX_MESSAGING_TOPIC
110
78
 
111
79
  MessagingService:SubscribeAsync(TOPIC, function(message)
112
- local data = game:GetService("HttpService"):JSONDecode(message.Data)
113
-
80
+ local data = HttpService:JSONDecode(message.Data)
114
81
  if data.type == "agent_message" then
115
- -- Handle agent message
116
82
  print("Agent says:", data.content)
117
- -- Broadcast to players, show in chat, etc.
118
83
  elseif data.type == "agent_action" then
119
- -- Handle agent action
120
84
  print("Agent action:", data.action, data.parameters)
121
- -- Execute the action in-game
122
85
  end
123
86
  end)
124
87
  ```
125
88
 
126
- ## Limitations & recommended architecture (critical notes)
127
-
128
- ### Inbound messages (Roblox → agent)
129
-
130
- Roblox Open Cloud **does not provide an external “subscribe” API** for `MessagingService`. That means:
131
-
132
- - This plugin supports **agent → Roblox** (publish) reliably.
133
- - It cannot, by itself, “listen to player chat” from outside Roblox by polling Open Cloud.
134
-
135
- **Recommended approach**: run a small HTTP bridge server that Roblox calls via `HttpService:RequestAsync(...)` and let the agent respond. See `examples/roblox/`.
136
-
137
- ### Movement / “walking around”
89
+ ## Limitations
138
90
 
139
- Agents cannot move things in Roblox via Open Cloud directly. Movement is possible only when your Roblox experience:
91
+ - **Inbound is not supported by Open Cloud.** There is no external subscribe API for
92
+ `MessagingService`, so the plugin cannot poll player chat. To send Roblox → agent,
93
+ run an HTTP bridge that the experience calls via `HttpService:RequestAsync(...)`.
94
+ - **Movement / world changes** happen only if your experience subscribes to the topic
95
+ and interprets `agent_action` payloads (`move_npc`, `teleport`, …) using Roblox APIs.
96
+ - **No agent voice channel.** Open Cloud has none; audio playback requires game-side
97
+ logic and Roblox asset constraints.
140
98
 
141
- - subscribes to the topic
142
- - interprets `agent_action` payloads (e.g. `move_npc`, `teleport`)
143
- - performs the movement using Roblox APIs (Humanoid / Pathfinding / TeleportService)
144
-
145
- ### Voice
146
-
147
- Open Cloud does not provide a direct “agent voice” channel.
148
-
149
- - You can generate audio externally, but Roblox playback requires game-side logic and Roblox’s audio constraints (assets / permissions / allowed sources).
150
- - Most deployments start with **text** and add voice later with custom UI and an audio pipeline.
151
-
152
- ## Project Structure
99
+ ## Layout
153
100
 
154
101
  ```
155
102
  plugin-roblox/
156
- ├── typescript/ # TypeScript implementation
157
- │ ├── actions/ # ROBLOX_ACTION router
158
- │ ├── services/ # RobloxService
159
- │ ├── providers/ # Context providers
160
- │ ├── client/ # API client
161
- │ ├── types/ # Type definitions
162
- │ └── index.ts # Plugin entry point
163
- ├── rust/ # Rust implementation
164
- │ └── src/
165
- │ ├── client.rs # API client
166
- │ ├── service.rs # Service implementation
167
- │ └── lib.rs # Crate entry point
168
- ├── python/ # Python implementation
169
- │ └── elizaos_plugin_roblox/
170
- │ ├── client.py # API client
171
- │ ├── service.py # Service implementation
172
- │ └── __init__.py # Package entry point
173
- └── package.json # npm package configuration
103
+ index.ts Plugin entry (robloxPlugin, RobloxService, RobloxClient, RobloxApiError)
104
+ actions/ ROBLOX action router
105
+ providers/ roblox-game-state provider
106
+ services/ RobloxService (singleton)
107
+ client/ RobloxClient (Open Cloud + roblox.com HTTP wrapper)
108
+ types/ Shared type definitions
109
+ utils/ config.ts (hasRobloxEnabled, validateRobloxConfig)
110
+ prompts/ Prompt fragments (evaluators, providers)
111
+ __tests__/ Vitest suite
174
112
  ```
175
113
 
176
- ## Development
177
-
178
- ### Building
114
+ ## Commands
179
115
 
180
116
  ```bash
181
- # TypeScript
182
- bun run build
183
- # TypeScript
184
- bun run test
185
- # TypeScript
186
- bun run lint
117
+ bun run build # compile (build.ts)
118
+ bun run test # vitest run __tests__/
119
+ bun run typecheck # tsgo --noEmit
120
+ bun run lint # biome check + fix
121
+ ```
122
+
123
+ See `CLAUDE.md` for agent-facing internals and extension points.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@elizaos/plugin-roblox",
3
- "version": "2.0.0-beta.1",
3
+ "version": "2.0.3-beta.3",
4
4
  "type": "module",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.js",
@@ -16,31 +16,38 @@
16
16
  "types": "./dist/index.d.ts",
17
17
  "default": "./dist/index.js"
18
18
  }
19
+ },
20
+ "./*.css": "./dist/*.css",
21
+ "./*": {
22
+ "types": "./dist/*.d.ts",
23
+ "import": "./dist/*.js",
24
+ "default": "./dist/*.js"
19
25
  }
20
26
  },
21
27
  "files": [
28
+ "registry-entry.json",
22
29
  "dist"
23
30
  ],
24
31
  "dependencies": {
25
- "@elizaos/core": "2.0.0-beta.1",
26
- "zod": "^4.4.3"
32
+ "@elizaos/core": "2.0.3-beta.3"
27
33
  },
28
34
  "devDependencies": {
29
35
  "@biomejs/biome": "^2.4.14",
30
36
  "@types/node": "^25.0.3",
31
- "typescript": "^6.0.3"
37
+ "typescript": "^6.0.3",
38
+ "vitest": "^4.1.4"
32
39
  },
33
40
  "scripts": {
34
41
  "dev": "bun run build.ts --watch",
35
- "typecheck": "tsc --noEmit -p tsconfig.json",
42
+ "typecheck": "tsgo --noEmit -p tsconfig.json",
36
43
  "test": "vitest run __tests__/",
37
44
  "test:unit": "vitest run __tests__/",
38
- "test:integration": "echo 'Integration tests require elizaos CLI - skipping'",
45
+ "test:integration": "echo 'Integration tests require the elizaos CLI and live Roblox credentials'",
39
46
  "lint": "bunx @biomejs/biome check --write --unsafe .",
40
- "lint:check": "bun run lint",
47
+ "lint:check": "bunx @biomejs/biome check .",
41
48
  "clean": "rm -rf dist .turbo .turbo-tsconfig.json tsconfig.tsbuildinfo",
42
- "format": "biome format --write .",
43
- "format:check": "biome format .",
49
+ "format": "bunx @biomejs/biome format --write .",
50
+ "format:check": "bunx @biomejs/biome format .",
44
51
  "build": "bun run build.ts",
45
52
  "build:ts": "bun run build.ts"
46
53
  },
@@ -98,5 +105,6 @@
98
105
  "platformDetails": {
99
106
  "node": "ESM build available via exports.import"
100
107
  }
101
- }
108
+ },
109
+ "gitHead": "f54b0f4eaed317d59fa7dbcdce20f4cdb0734420"
102
110
  }
@@ -0,0 +1,88 @@
1
+ {
2
+ "id": "roblox",
3
+ "name": "Roblox",
4
+ "description": "Roblox app integration for agent-driven gameplay and interactive experiences.",
5
+ "npmName": "@elizaos/plugin-roblox",
6
+ "version": "2.0.0-beta.0",
7
+ "source": "bundled",
8
+ "tags": ["app", "games", "roblox", "interactive"],
9
+ "config": {
10
+ "ROBLOX_API_KEY": {
11
+ "type": "secret",
12
+ "required": true,
13
+ "sensitive": true,
14
+ "label": "Api Key",
15
+ "help": "API key for authenticating with the Roblox Open Cloud API.",
16
+ "advanced": false
17
+ },
18
+ "ROBLOX_DRY_RUN": {
19
+ "type": "boolean",
20
+ "required": false,
21
+ "sensitive": false,
22
+ "default": "False",
23
+ "label": "Dry Run",
24
+ "help": "When true, operations are simulated but not executed.",
25
+ "advanced": false
26
+ },
27
+ "ROBLOX_PLACE_ID": {
28
+ "type": "string",
29
+ "required": false,
30
+ "sensitive": false,
31
+ "label": "Place Id",
32
+ "help": "The Place ID of the specific Roblox place within the universe.",
33
+ "advanced": false
34
+ },
35
+ "ROBLOX_UNIVERSE_ID": {
36
+ "type": "string",
37
+ "required": true,
38
+ "sensitive": false,
39
+ "label": "Universe Id",
40
+ "help": "The Universe ID of the Roblox experience to interact with.",
41
+ "advanced": false
42
+ },
43
+ "ROBLOX_POLL_INTERVAL": {
44
+ "type": "number",
45
+ "required": false,
46
+ "sensitive": false,
47
+ "default": "30",
48
+ "label": "Poll Interval",
49
+ "help": "Polling interval in seconds for Roblox data store operations.",
50
+ "advanced": false,
51
+ "min": 0,
52
+ "unit": "ms"
53
+ },
54
+ "ROBLOX_WEBHOOK_SECRET": {
55
+ "type": "secret",
56
+ "required": false,
57
+ "sensitive": true,
58
+ "label": "Webhook Secret",
59
+ "help": "Secret key for validating incoming webhooks from Roblox.",
60
+ "advanced": false
61
+ },
62
+ "ROBLOX_MESSAGING_TOPIC": {
63
+ "type": "string",
64
+ "required": false,
65
+ "sensitive": false,
66
+ "default": "eliza-agent",
67
+ "label": "Messaging Topic",
68
+ "help": "The messaging service topic for cross-server communication.",
69
+ "advanced": false
70
+ }
71
+ },
72
+ "render": {
73
+ "visible": true,
74
+ "pinTo": [],
75
+ "style": "card",
76
+ "icon": "BrickWall",
77
+ "group": "gaming",
78
+ "groupOrder": 11,
79
+ "actions": ["enable", "configure"]
80
+ },
81
+ "resources": {
82
+ "homepage": "https://github.com/elizaos-plugins/plugin-roblox#readme",
83
+ "repository": "https://github.com/elizaos-plugins/plugin-roblox"
84
+ },
85
+ "dependsOn": [],
86
+ "kind": "plugin",
87
+ "subtype": "gaming"
88
+ }
@@ -1,7 +0,0 @@
1
- import type { TestCase, TestSuite } from "@elizaos/core";
2
- export declare class RobloxTestSuite implements TestSuite {
3
- name: string;
4
- description: string;
5
- tests: TestCase[];
6
- }
7
- //# sourceMappingURL=suite.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"suite.d.ts","sourceRoot":"","sources":["../../__tests__/suite.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAiB,QAAQ,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAIxE,qBAAa,eAAgB,YAAW,SAAS;IAC/C,IAAI,SAAY;IAChB,WAAW,SAAkC;IAE7C,KAAK,EAAE,QAAQ,EAAE,CAkDf;CACH"}
@@ -1,4 +0,0 @@
1
- import { type Action } from "@elizaos/core";
2
- declare const executeGameAction: Action;
3
- export default executeGameAction;
4
- //# sourceMappingURL=executeGameAction.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"executeGameAction.d.ts","sourceRoot":"","sources":["../../actions/executeGameAction.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,MAAM,EASZ,MAAM,eAAe,CAAC;AAwIvB,QAAA,MAAM,iBAAiB,EAAE,MA0HxB,CAAC;AAEF,eAAe,iBAAiB,CAAC"}
@@ -1,4 +0,0 @@
1
- import { type Action } from "@elizaos/core";
2
- export declare const executeRobloxAction: Action;
3
- export default executeRobloxAction;
4
- //# sourceMappingURL=executeRobloxAction.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"executeRobloxAction.d.ts","sourceRoot":"","sources":["../../actions/executeRobloxAction.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,MAAM,EAUZ,MAAM,eAAe,CAAC;AAiMvB,eAAO,MAAM,mBAAmB,EAAE,MA2GjC,CAAC;AAEF,eAAe,mBAAmB,CAAC"}
@@ -1,4 +0,0 @@
1
- import { type Action } from "@elizaos/core";
2
- declare const getPlayerInfo: Action;
3
- export default getPlayerInfo;
4
- //# sourceMappingURL=getPlayerInfo.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"getPlayerInfo.d.ts","sourceRoot":"","sources":["../../actions/getPlayerInfo.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,MAAM,EASZ,MAAM,eAAe,CAAC;AA4DvB,QAAA,MAAM,aAAa,EAAE,MAgKpB,CAAC;AAEF,eAAe,aAAa,CAAC"}
@@ -1,5 +0,0 @@
1
- import type { Action } from "@elizaos/core";
2
- import robloxAction from "./robloxAction";
3
- export declare const robloxActions: Action[];
4
- export { robloxAction };
5
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../actions/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAE1C,eAAO,MAAM,aAAa,EAAE,MAAM,EAAmB,CAAC;AAEtD,OAAO,EAAE,YAAY,EAAE,CAAC"}
@@ -1,4 +0,0 @@
1
- import { type Action } from "@elizaos/core";
2
- export declare const robloxAction: Action;
3
- export default robloxAction;
4
- //# sourceMappingURL=robloxAction.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"robloxAction.d.ts","sourceRoot":"","sources":["../../actions/robloxAction.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,MAAM,EAUZ,MAAM,eAAe,CAAC;AA+YvB,eAAO,MAAM,YAAY,EAAE,MAmI1B,CAAC;AAEF,eAAe,YAAY,CAAC"}
@@ -1,4 +0,0 @@
1
- import { type Action } from "@elizaos/core";
2
- declare const sendGameMessage: Action;
3
- export default sendGameMessage;
4
- //# sourceMappingURL=sendGameMessage.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sendGameMessage.d.ts","sourceRoot":"","sources":["../../actions/sendGameMessage.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,MAAM,EASZ,MAAM,eAAe,CAAC;AAuCvB,QAAA,MAAM,eAAe,EAAE,MA2HtB,CAAC;AAaF,eAAe,eAAe,CAAC"}
@@ -1,4 +0,0 @@
1
- import { type Action } from "@elizaos/core";
2
- export declare const sendRobloxMessage: Action;
3
- export default sendRobloxMessage;
4
- //# sourceMappingURL=sendRobloxMessage.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sendRobloxMessage.d.ts","sourceRoot":"","sources":["../../actions/sendRobloxMessage.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,MAAM,EASZ,MAAM,eAAe,CAAC;AA0FvB,eAAO,MAAM,iBAAiB,EAAE,MAkG/B,CAAC;AAEF,eAAe,iBAAiB,CAAC"}
@@ -1,29 +0,0 @@
1
- import type { DataStoreEntry, JsonValue, JsonValueOrUndefined, MessagingServiceMessage, RobloxConfig, RobloxExperienceInfo, RobloxUser } from "../types";
2
- export declare class RobloxApiError extends Error {
3
- statusCode: number;
4
- endpoint: string;
5
- details?: JsonValue | string;
6
- constructor(message: string, statusCode: number, endpoint: string, details?: JsonValue | string);
7
- }
8
- export declare class RobloxClient {
9
- private config;
10
- constructor(config: RobloxConfig);
11
- private request;
12
- publishMessage(topic: string, data: Record<string, JsonValueOrUndefined>, universeId?: string): Promise<void>;
13
- sendAgentMessage(message: MessagingServiceMessage): Promise<void>;
14
- getDataStoreEntry<T extends JsonValue = JsonValue>(datastoreName: string, key: string, scope?: string): Promise<DataStoreEntry<T> | null>;
15
- setDataStoreEntry<T extends JsonValue = JsonValue>(datastoreName: string, key: string, value: T, scope?: string): Promise<DataStoreEntry<T>>;
16
- deleteDataStoreEntry(datastoreName: string, key: string, scope?: string): Promise<void>;
17
- listDataStoreEntries(datastoreName: string, scope?: string, prefix?: string, limit?: number): Promise<{
18
- keys: string[];
19
- nextPageCursor?: string;
20
- }>;
21
- getUserById(userId: number): Promise<RobloxUser>;
22
- getUserByUsername(username: string): Promise<RobloxUser | null>;
23
- getUsersByIds(userIds: number[]): Promise<RobloxUser[]>;
24
- getAvatarUrl(userId: number, size?: string): Promise<string | undefined>;
25
- getExperienceInfo(universeId?: string): Promise<RobloxExperienceInfo>;
26
- getConfig(): Readonly<RobloxConfig>;
27
- isDryRun(): boolean;
28
- }
29
- //# sourceMappingURL=RobloxClient.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"RobloxClient.d.ts","sourceRoot":"","sources":["../../client/RobloxClient.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,SAAS,EACT,oBAAoB,EACpB,uBAAuB,EACvB,YAAY,EACZ,oBAAoB,EACpB,UAAU,EACX,MAAM,UAAU,CAAC;AAKlB,qBAAa,cAAe,SAAQ,KAAK;IAG9B,UAAU,EAAE,MAAM;IAClB,QAAQ,EAAE,MAAM;IAChB,OAAO,CAAC,EAAE,SAAS,GAAG,MAAM;gBAHnC,OAAO,EAAE,MAAM,EACR,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,SAAS,GAAG,MAAM;CAKtC;AAED,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAAe;gBAEjB,MAAM,EAAE,YAAY;YAIlB,OAAO;IAwCf,cAAc,CAClB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,EAC1C,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,IAAI,CAAC;IAgBV,gBAAgB,CAAC,OAAO,EAAE,uBAAuB,GAAG,OAAO,CAAC,IAAI,CAAC;IAUjE,iBAAiB,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS,EACrD,aAAa,EAAE,MAAM,EACrB,GAAG,EAAE,MAAM,EACX,KAAK,GAAE,MAAiB,GACvB,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IA0B9B,iBAAiB,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS,EACrD,aAAa,EAAE,MAAM,EACrB,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,CAAC,EACR,KAAK,GAAE,MAAiB,GACvB,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;IAiCvB,oBAAoB,CACxB,aAAa,EAAE,MAAM,EACrB,GAAG,EAAE,MAAM,EACX,KAAK,GAAE,MAAiB,GACvB,OAAO,CAAC,IAAI,CAAC;IAYV,oBAAoB,CACxB,aAAa,EAAE,MAAM,EACrB,KAAK,GAAE,MAAiB,EACxB,MAAM,CAAC,EAAE,MAAM,EACf,KAAK,GAAE,MAAY,GAClB,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,EAAE,CAAC;QAAC,cAAc,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAkBjD,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAkBhD,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAmC/D,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IA2BvD,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,GAAE,MAAkB,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAgBnF,iBAAiB,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC;IA2C3E,SAAS,IAAI,QAAQ,CAAC,YAAY,CAAC;IAInC,QAAQ,IAAI,OAAO;CAGpB"}
@@ -1,2 +0,0 @@
1
- export { RobloxApiError, RobloxClient } from "./RobloxClient";
2
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../client/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC"}
@@ -1,46 +0,0 @@
1
- /**
2
- * Auto-generated canonical action/provider docs for plugin-roblox.
3
- * DO NOT EDIT - Generated from prompts/specs/**.
4
- */
5
- export type ActionDoc = {
6
- name: string;
7
- description: string;
8
- similes?: readonly string[];
9
- parameters?: readonly unknown[];
10
- examples?: readonly (readonly unknown[])[];
11
- };
12
- export type ProviderDoc = {
13
- name: string;
14
- description: string;
15
- position?: number;
16
- dynamic?: boolean;
17
- };
18
- export declare const coreActionsSpec: {
19
- readonly version: "1.0.0";
20
- readonly actions: readonly [];
21
- };
22
- export declare const allActionsSpec: {
23
- readonly version: "1.0.0";
24
- readonly actions: readonly [];
25
- };
26
- export declare const coreProvidersSpec: {
27
- readonly version: "1.0.0";
28
- readonly providers: readonly [{
29
- readonly name: "roblox-game-state";
30
- readonly description: "Provides information about the connected Roblox game/experience";
31
- readonly dynamic: true;
32
- }];
33
- };
34
- export declare const allProvidersSpec: {
35
- readonly version: "1.0.0";
36
- readonly providers: readonly [{
37
- readonly name: "roblox-game-state";
38
- readonly description: "Provides information about the connected Roblox game/experience";
39
- readonly dynamic: true;
40
- }];
41
- };
42
- export declare const coreActionDocs: readonly ActionDoc[];
43
- export declare const allActionDocs: readonly ActionDoc[];
44
- export declare const coreProviderDocs: readonly ProviderDoc[];
45
- export declare const allProviderDocs: readonly ProviderDoc[];
46
- //# sourceMappingURL=specs.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"specs.d.ts","sourceRoot":"","sources":["../../../generated/specs/specs.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,MAAM,SAAS,GAAG;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5B,UAAU,CAAC,EAAE,SAAS,OAAO,EAAE,CAAC;IAChC,QAAQ,CAAC,EAAE,SAAS,CAAC,SAAS,OAAO,EAAE,CAAC,EAAE,CAAC;CAC5C,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF,eAAO,MAAM,eAAe;;;CAGlB,CAAC;AACX,eAAO,MAAM,cAAc;;;CAGjB,CAAC;AACX,eAAO,MAAM,iBAAiB;;;;;;;CASpB,CAAC;AACX,eAAO,MAAM,gBAAgB;;;;;;;CASnB,CAAC;AAEX,eAAO,MAAM,cAAc,EAAE,SAAS,SAAS,EAA4B,CAAC;AAC5E,eAAO,MAAM,aAAa,EAAE,SAAS,SAAS,EAA2B,CAAC;AAC1E,eAAO,MAAM,gBAAgB,EAAE,SAAS,WAAW,EAAgC,CAAC;AACpF,eAAO,MAAM,eAAe,EAAE,SAAS,WAAW,EAA+B,CAAC"}
@@ -1,4 +0,0 @@
1
- import type { Plugin } from "@elizaos/core";
2
- export declare const robloxPlugin: Plugin;
3
- export default robloxPlugin;
4
- //# sourceMappingURL=index.browser.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.browser.d.ts","sourceRoot":"","sources":["../index.browser.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAiB,MAAM,EAAE,MAAM,eAAe,CAAC;AAK3D,eAAO,MAAM,YAAY,EAAE,MAQ1B,CAAC;AAEF,eAAe,YAAY,CAAC"}
package/dist/index.d.ts DELETED
@@ -1,6 +0,0 @@
1
- import type { Plugin } from "@elizaos/core";
2
- export { RobloxApiError, RobloxClient } from "./client/RobloxClient";
3
- export { RobloxService } from "./services/RobloxService";
4
- export declare const robloxPlugin: Plugin;
5
- export default robloxPlugin;
6
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAiB,MAAM,EAAE,MAAM,eAAe,CAAC;AAM3D,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAEzD,eAAO,MAAM,YAAY,EAAE,MAwB1B,CAAC;AAEF,eAAe,YAAY,CAAC"}