@elizaos/plugin-trajectory-logger 2.0.0-alpha.3 → 2.0.0-alpha.5

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 (86) hide show
  1. package/README.md +26 -0
  2. package/package.json +38 -37
  3. package/python/README.md +10 -0
  4. package/python/elizaos_plugin_discord/generated/specs/__init__.py +1 -0
  5. package/python/elizaos_plugin_discord/generated/specs/specs.py +77 -0
  6. package/python/elizaos_plugin_trajectory_logger/__init__.py +98 -0
  7. package/python/elizaos_plugin_trajectory_logger/__pycache__/__init__.cpython-312.pyc +0 -0
  8. package/python/elizaos_plugin_trajectory_logger/__pycache__/__init__.cpython-313.pyc +0 -0
  9. package/python/elizaos_plugin_trajectory_logger/__pycache__/action_interceptor.cpython-313.pyc +0 -0
  10. package/python/elizaos_plugin_trajectory_logger/__pycache__/art_format.cpython-312.pyc +0 -0
  11. package/python/elizaos_plugin_trajectory_logger/__pycache__/art_format.cpython-313.pyc +0 -0
  12. package/python/elizaos_plugin_trajectory_logger/__pycache__/eliza_service.cpython-312.pyc +0 -0
  13. package/python/elizaos_plugin_trajectory_logger/__pycache__/eliza_service.cpython-313.pyc +0 -0
  14. package/python/elizaos_plugin_trajectory_logger/__pycache__/export.cpython-312.pyc +0 -0
  15. package/python/elizaos_plugin_trajectory_logger/__pycache__/export.cpython-313.pyc +0 -0
  16. package/python/elizaos_plugin_trajectory_logger/__pycache__/plugin.cpython-312.pyc +0 -0
  17. package/python/elizaos_plugin_trajectory_logger/__pycache__/plugin.cpython-313.pyc +0 -0
  18. package/python/elizaos_plugin_trajectory_logger/__pycache__/reward_service.cpython-312.pyc +0 -0
  19. package/python/elizaos_plugin_trajectory_logger/__pycache__/reward_service.cpython-313.pyc +0 -0
  20. package/python/elizaos_plugin_trajectory_logger/__pycache__/runtime_service.cpython-312.pyc +0 -0
  21. package/python/elizaos_plugin_trajectory_logger/__pycache__/runtime_service.cpython-313.pyc +0 -0
  22. package/python/elizaos_plugin_trajectory_logger/__pycache__/service.cpython-312.pyc +0 -0
  23. package/python/elizaos_plugin_trajectory_logger/__pycache__/service.cpython-313.pyc +0 -0
  24. package/python/elizaos_plugin_trajectory_logger/__pycache__/types.cpython-312.pyc +0 -0
  25. package/python/elizaos_plugin_trajectory_logger/__pycache__/types.cpython-313.pyc +0 -0
  26. package/python/elizaos_plugin_trajectory_logger/action_interceptor.py +416 -0
  27. package/python/elizaos_plugin_trajectory_logger/art_format.py +200 -0
  28. package/python/elizaos_plugin_trajectory_logger/eliza_service.py +282 -0
  29. package/python/elizaos_plugin_trajectory_logger/export.py +81 -0
  30. package/python/elizaos_plugin_trajectory_logger/plugin.py +18 -0
  31. package/python/elizaos_plugin_trajectory_logger/py.typed +1 -0
  32. package/python/elizaos_plugin_trajectory_logger/reward_service.py +71 -0
  33. package/python/elizaos_plugin_trajectory_logger/runtime_service.py +284 -0
  34. package/python/elizaos_plugin_trajectory_logger/service.py +221 -0
  35. package/python/elizaos_plugin_trajectory_logger/types.py +212 -0
  36. package/python/pyproject.toml +77 -0
  37. package/python/tests/__init__.py +1 -0
  38. package/python/tests/__pycache__/__init__.cpython-313.pyc +0 -0
  39. package/python/tests/__pycache__/test_action_interceptor.cpython-313-pytest-9.0.2.pyc +0 -0
  40. package/python/tests/__pycache__/test_art_format.cpython-313-pytest-9.0.2.pyc +0 -0
  41. package/python/tests/__pycache__/test_service.cpython-313-pytest-9.0.2.pyc +0 -0
  42. package/python/tests/test_action_interceptor.py +498 -0
  43. package/python/tests/test_art_format.py +119 -0
  44. package/python/tests/test_service.py +55 -0
  45. package/rust/Cargo.lock +331 -0
  46. package/rust/Cargo.toml +25 -0
  47. package/rust/README.md +10 -0
  48. package/rust/src/action_interceptor.rs +1053 -0
  49. package/rust/src/art_format.rs +386 -0
  50. package/rust/src/export.rs +80 -0
  51. package/rust/src/generated/specs/mod.rs +3 -0
  52. package/rust/src/generated/specs/specs.rs +27 -0
  53. package/rust/src/lib.rs +26 -0
  54. package/rust/src/reward_service.rs +127 -0
  55. package/rust/src/service.rs +322 -0
  56. package/rust/src/types.rs +327 -0
  57. package/rust/tests/integration_tests.rs +1211 -0
  58. package/typescript/dist/node/index.node.js +3137 -0
  59. package/typescript/dist/node/index.node.js.map +47 -0
  60. package/dist/TrajectoryLoggerService.d.ts +0 -39
  61. package/dist/TrajectoryLoggerService.d.ts.map +0 -1
  62. package/dist/action-interceptor.d.ts +0 -23
  63. package/dist/action-interceptor.d.ts.map +0 -1
  64. package/dist/art-format.d.ts +0 -32
  65. package/dist/art-format.d.ts.map +0 -1
  66. package/dist/build.d.ts +0 -3
  67. package/dist/build.d.ts.map +0 -1
  68. package/dist/export.d.ts +0 -40
  69. package/dist/export.d.ts.map +0 -1
  70. package/dist/game-rewards.d.ts +0 -14
  71. package/dist/game-rewards.d.ts.map +0 -1
  72. package/dist/generated/specs/specs.d.ts +0 -55
  73. package/dist/generated/specs/specs.d.ts.map +0 -1
  74. package/dist/index.browser.d.ts +0 -4
  75. package/dist/index.browser.d.ts.map +0 -1
  76. package/dist/index.d.ts +0 -21
  77. package/dist/index.d.ts.map +0 -1
  78. package/dist/integration.d.ts +0 -58
  79. package/dist/integration.d.ts.map +0 -1
  80. package/dist/node/index.node.js +0 -839
  81. package/dist/node/index.node.js.map +0 -17
  82. package/dist/node/tsconfig.build.tsbuildinfo +0 -1
  83. package/dist/reward-service.d.ts +0 -24
  84. package/dist/reward-service.d.ts.map +0 -1
  85. package/dist/types.d.ts +0 -241
  86. package/dist/types.d.ts.map +0 -1
package/README.md ADDED
@@ -0,0 +1,26 @@
1
+ # @elizaos/plugin-trajectory-logger
2
+
3
+ Trajectory logger plugin for ElizaOS.
4
+
5
+ This plugin captures rich agent interaction trajectories and provides utilities to:
6
+
7
+ - Wrap actions/providers with logging hooks
8
+ - Record LLM calls, provider accesses, and action attempts
9
+ - Convert trajectories to ART-compatible message format (OpenPipe ART / GRPO)
10
+
11
+ ## Install
12
+
13
+ ```bash
14
+ npm install @elizaos/plugin-trajectory-logger
15
+ ```
16
+
17
+ ## Usage
18
+
19
+ ```ts
20
+ import { trajectoryLoggerPlugin } from "@elizaos/plugin-trajectory-logger";
21
+
22
+ export const character = {
23
+ plugins: [trajectoryLoggerPlugin],
24
+ };
25
+ ```
26
+
package/package.json CHANGED
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "name": "@elizaos/plugin-trajectory-logger",
3
+ "version": "2.0.0-alpha.5",
3
4
  "description": "Trajectory logging plugin for ElizaOS - capture agent interaction trajectories for RL training",
4
- "version": "2.0.0-alpha.3",
5
5
  "type": "module",
6
- "main": "dist/node/index.node.js",
7
- "module": "dist/node/index.node.js",
8
- "types": "dist/index.d.ts",
6
+ "main": "typescript/dist/node/index.node.js",
7
+ "module": "typescript/dist/node/index.node.js",
8
+ "types": "typescript/dist/index.d.ts",
9
9
  "packageType": "plugin",
10
10
  "platform": "node",
11
11
  "license": "MIT",
@@ -23,29 +23,34 @@
23
23
  "url": "https://github.com/elizaos/elizaos"
24
24
  },
25
25
  "homepage": "https://elizaos.ai",
26
+ "bugs": {
27
+ "url": "https://github.com/elizaos/elizaos/issues"
28
+ },
26
29
  "exports": {
27
30
  "./package.json": "./package.json",
28
31
  ".": {
29
- "types": "./dist/index.d.ts",
32
+ "types": "./typescript/dist/index.d.ts",
30
33
  "node": {
31
- "types": "./dist/index.d.ts",
32
- "import": "./dist/node/index.node.js",
33
- "default": "./dist/node/index.node.js"
34
+ "types": "./typescript/dist/node/index.d.ts",
35
+ "import": "./typescript/dist/node/index.node.js",
36
+ "default": "./typescript/dist/node/index.node.js"
34
37
  },
35
38
  "bun": {
36
- "types": "./dist/index.d.ts",
37
- "default": "./dist/node/index.node.js"
39
+ "types": "./typescript/dist/node/index.d.ts",
40
+ "default": "./typescript/dist/node/index.node.js"
38
41
  },
39
- "default": "./dist/node/index.node.js"
42
+ "default": "./typescript/dist/node/index.node.js"
40
43
  }
41
44
  },
42
45
  "files": [
43
- "dist",
46
+ "typescript/dist",
47
+ "python",
48
+ "rust",
44
49
  "README.md"
45
50
  ],
46
51
  "sideEffects": false,
47
52
  "dependencies": {
48
- "@elizaos/core": "2.0.0-alpha.3",
53
+ "@elizaos/core": "next",
49
54
  "uuid": "^13.0.0"
50
55
  },
51
56
  "devDependencies": {
@@ -56,34 +61,30 @@
56
61
  "typescript": "^5.9.3"
57
62
  },
58
63
  "scripts": {
59
- "dev": "bun --hot build.ts",
60
- "clean": "rm -rf dist .turbo node_modules tsconfig.tsbuildinfo",
61
- "format": "bunx @biomejs/biome format --write .",
62
- "format:check": "bunx @biomejs/biome format .",
63
- "typecheck": "tsc --noEmit -p tsconfig.json",
64
- "test": "vitest run tests/",
65
- "test:unit": "vitest run tests/",
66
- "test:watch": "vitest",
67
- "lint": "bunx @biomejs/biome check --write --unsafe .",
68
- "lint:check": "bunx @biomejs/biome check .",
69
- "build": "bun run build.ts",
70
- "build:ts": "bun run build.ts"
71
- },
72
- "publishConfig": {
73
- "access": "public"
64
+ "build": "bun run build:ts && bun run build:rust && bun run build:python",
65
+ "build:ts": "cd typescript && bun run build.ts",
66
+ "build:rust": "test -d rust && cd rust && cargo build --release || echo 'Rust build skipped - no rust directory'",
67
+ "build:python": "test -n \"$SKIP_PYTHON_BUILD\" && echo 'Python build skipped (SKIP_PYTHON_BUILD set)' || (test -d python && cd python && (timeout 120 python3 -m build 2>/dev/null || timeout 120 pyproject-build 2>/dev/null) || echo 'Python build skipped or timed out')",
68
+ "dev": "cd typescript && bun --hot build.ts",
69
+ "test": "bun run test:ts && bun run test:rust && bun run test:python",
70
+ "test:ts": "cd typescript && vitest run || echo 'TypeScript tests skipped - no tests found'",
71
+ "test:rust": "test -d rust && cd rust && cargo test || echo 'Rust tests skipped'",
72
+ "test:python": "test -d python && cd python && pytest -p no:anchorpy --asyncio-mode=auto || echo 'Python tests skipped'",
73
+ "typecheck": "tsc --noEmit -p typescript/tsconfig.json",
74
+ "lint": "bunx @biomejs/biome check --write ./typescript",
75
+ "lint:check": "bunx @biomejs/biome check ./typescript",
76
+ "lint:rust": "test -d rust && cd rust && cargo clippy --all-targets --fix --allow-dirty --allow-staged -- -D warnings && cargo fmt || echo 'Rust lint skipped'",
77
+ "lint:python": "test -d python && cd python && ruff check --fix . && ruff format . || echo 'Python lint skipped'",
78
+ "clean": "rm -rf typescript/dist python/dist rust/target .turbo node_modules",
79
+ "format": "bunx @biomejs/biome format --write ./typescript",
80
+ "format:check": "bunx @biomejs/biome format ./typescript",
81
+ "typecheck:python": "test -d python && cd python && mypy . --ignore-missing-imports || echo 'Python typecheck skipped'",
82
+ "typecheck:rust": "test -d rust && cd rust && cargo check || echo 'Rust typecheck skipped'"
74
83
  },
75
84
  "agentConfig": {
76
85
  "pluginType": "elizaos:plugin:1.0.0",
77
86
  "pluginParameters": {},
78
87
  "description": "Collects complete agent interaction trajectories for RL training."
79
88
  },
80
- "milaidy": {
81
- "platforms": [
82
- "node"
83
- ],
84
- "runtime": "node",
85
- "platformDetails": {
86
- "node": "Node.js only (platform: node)"
87
- }
88
- }
89
+ "gitHead": "401e0d2502fea9d6f459aa80faad1369798e9600"
89
90
  }
@@ -0,0 +1,10 @@
1
+ # elizaOS Trajectory Logger Plugin (Python)
2
+
3
+ Python implementation of the elizaOS Trajectory Logger plugin.
4
+
5
+ This package provides:
6
+
7
+ - In-memory trajectory logging (`TrajectoryLoggerService`)
8
+ - ART / GRPO formatting helpers (OpenPipe ART message format)
9
+ - Simple heuristic reward scoring
10
+
@@ -0,0 +1 @@
1
+ """Auto-generated module package."""
@@ -0,0 +1,77 @@
1
+ """
2
+ Auto-generated canonical action/provider/evaluator docs for plugin-trajectory-logger.
3
+ DO NOT EDIT - Generated from prompts/specs/**.
4
+ """
5
+
6
+ from __future__ import annotations
7
+
8
+ import json
9
+ from typing import TypedDict
10
+
11
+
12
+ class ActionDoc(TypedDict, total=False):
13
+ name: str
14
+ description: str
15
+ similes: list[str]
16
+ parameters: list[object]
17
+ examples: list[list[object]]
18
+
19
+
20
+ class ProviderDoc(TypedDict, total=False):
21
+ name: str
22
+ description: str
23
+ position: int
24
+ dynamic: bool
25
+
26
+
27
+ class EvaluatorDoc(TypedDict, total=False):
28
+ name: str
29
+ description: str
30
+ similes: list[str]
31
+ alwaysRun: bool
32
+ examples: list[object]
33
+
34
+
35
+ _CORE_ACTION_DOCS_JSON = """{
36
+ "version": "1.0.0",
37
+ "actions": []
38
+ }"""
39
+ _ALL_ACTION_DOCS_JSON = """{
40
+ "version": "1.0.0",
41
+ "actions": []
42
+ }"""
43
+ _CORE_PROVIDER_DOCS_JSON = """{
44
+ "version": "1.0.0",
45
+ "providers": []
46
+ }"""
47
+ _ALL_PROVIDER_DOCS_JSON = """{
48
+ "version": "1.0.0",
49
+ "providers": []
50
+ }"""
51
+ _CORE_EVALUATOR_DOCS_JSON = """{
52
+ "version": "1.0.0",
53
+ "evaluators": []
54
+ }"""
55
+ _ALL_EVALUATOR_DOCS_JSON = """{
56
+ "version": "1.0.0",
57
+ "evaluators": []
58
+ }"""
59
+
60
+ core_action_docs: dict[str, object] = json.loads(_CORE_ACTION_DOCS_JSON)
61
+ all_action_docs: dict[str, object] = json.loads(_ALL_ACTION_DOCS_JSON)
62
+ core_provider_docs: dict[str, object] = json.loads(_CORE_PROVIDER_DOCS_JSON)
63
+ all_provider_docs: dict[str, object] = json.loads(_ALL_PROVIDER_DOCS_JSON)
64
+ core_evaluator_docs: dict[str, object] = json.loads(_CORE_EVALUATOR_DOCS_JSON)
65
+ all_evaluator_docs: dict[str, object] = json.loads(_ALL_EVALUATOR_DOCS_JSON)
66
+
67
+ __all__ = [
68
+ "ActionDoc",
69
+ "ProviderDoc",
70
+ "EvaluatorDoc",
71
+ "core_action_docs",
72
+ "all_action_docs",
73
+ "core_provider_docs",
74
+ "all_provider_docs",
75
+ "core_evaluator_docs",
76
+ "all_evaluator_docs",
77
+ ]
@@ -0,0 +1,98 @@
1
+ """
2
+ elizaOS Trajectory Logger Plugin - capture and export agent trajectories.
3
+
4
+ This package provides:
5
+ - In-memory trajectory logging service
6
+ - ART / GRPO formatting helpers
7
+ - Simple heuristic reward scoring
8
+ """
9
+
10
+ from elizaos_plugin_trajectory_logger.art_format import (
11
+ extract_shared_prefix,
12
+ group_trajectories,
13
+ prepare_for_ruler,
14
+ remove_shared_prefix,
15
+ to_art_messages,
16
+ to_art_trajectory,
17
+ validate_art_compatibility,
18
+ )
19
+ from elizaos_plugin_trajectory_logger.eliza_service import (
20
+ TRAJECTORY_LOGGER_SERVICE_TYPE,
21
+ TrajectoryExportConfig,
22
+ TrajectoryLoggerElizaService,
23
+ )
24
+ from elizaos_plugin_trajectory_logger.export import (
25
+ ExportOptions,
26
+ ExportResult,
27
+ export_for_openpipe_art,
28
+ export_grouped_for_grpo,
29
+ )
30
+ from elizaos_plugin_trajectory_logger.plugin import get_trajectory_logger_plugin
31
+ from elizaos_plugin_trajectory_logger.reward_service import RewardService, create_reward_service
32
+ from elizaos_plugin_trajectory_logger.runtime_service import (
33
+ TrajectoryExportConfig as TrajectoryRuntimeExportConfig,
34
+ )
35
+ from elizaos_plugin_trajectory_logger.runtime_service import (
36
+ TrajectoryLoggerRuntimeService,
37
+ )
38
+ from elizaos_plugin_trajectory_logger.service import TrajectoryLoggerService
39
+ from elizaos_plugin_trajectory_logger.types import (
40
+ ActionAttempt,
41
+ ARTTrajectory,
42
+ ChatMessage,
43
+ EnvironmentState,
44
+ JsonValue,
45
+ LLMCall,
46
+ ProviderAccess,
47
+ RewardComponents,
48
+ TrainingBatch,
49
+ Trajectory,
50
+ TrajectoryGroup,
51
+ TrajectoryMetrics,
52
+ TrajectoryStep,
53
+ )
54
+
55
+ __all__ = [
56
+ # Service
57
+ "TrajectoryLoggerService",
58
+ "get_trajectory_logger_plugin",
59
+ "TrajectoryLoggerElizaService",
60
+ "TRAJECTORY_LOGGER_SERVICE_TYPE",
61
+ "TrajectoryExportConfig",
62
+ "TrajectoryLoggerRuntimeService",
63
+ "TrajectoryRuntimeExportConfig",
64
+ # Types
65
+ "JsonValue",
66
+ "LLMCall",
67
+ "ProviderAccess",
68
+ "ActionAttempt",
69
+ "EnvironmentState",
70
+ "TrajectoryStep",
71
+ "RewardComponents",
72
+ "TrajectoryMetrics",
73
+ "Trajectory",
74
+ "ChatMessage",
75
+ "ARTTrajectory",
76
+ "TrajectoryGroup",
77
+ "TrainingBatch",
78
+ # ART helpers
79
+ "to_art_messages",
80
+ "to_art_trajectory",
81
+ "group_trajectories",
82
+ "extract_shared_prefix",
83
+ "remove_shared_prefix",
84
+ "prepare_for_ruler",
85
+ "validate_art_compatibility",
86
+ # Rewards
87
+ "RewardService",
88
+ "create_reward_service",
89
+ # Export
90
+ "ExportOptions",
91
+ "ExportResult",
92
+ "export_for_openpipe_art",
93
+ "export_grouped_for_grpo",
94
+ ]
95
+
96
+ __version__ = "1.2.0"
97
+ PLUGIN_NAME = "trajectory-logger"
98
+ PLUGIN_DESCRIPTION = "Trajectory logging utilities for elizaOS agents"