@elizaos/plugin-agent-orchestrator 0.4.3 → 0.6.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 (56) hide show
  1. package/README.md +76 -35
  2. package/dist/actions/coding-task-handlers.d.ts.map +1 -1
  3. package/dist/actions/coding-task-helpers.d.ts +10 -0
  4. package/dist/actions/coding-task-helpers.d.ts.map +1 -1
  5. package/dist/actions/list-agents.d.ts +5 -3
  6. package/dist/actions/list-agents.d.ts.map +1 -1
  7. package/dist/actions/send-to-agent.d.ts +2 -1
  8. package/dist/actions/send-to-agent.d.ts.map +1 -1
  9. package/dist/actions/spawn-agent.d.ts +3 -2
  10. package/dist/actions/spawn-agent.d.ts.map +1 -1
  11. package/dist/actions/start-coding-task.d.ts +5 -4
  12. package/dist/actions/start-coding-task.d.ts.map +1 -1
  13. package/dist/actions/stop-agent.d.ts +2 -1
  14. package/dist/actions/stop-agent.d.ts.map +1 -1
  15. package/dist/api/agent-routes.d.ts +3 -3
  16. package/dist/api/agent-routes.d.ts.map +1 -1
  17. package/dist/api/coordinator-routes.d.ts.map +1 -1
  18. package/dist/api/routes.d.ts +3 -2
  19. package/dist/api/routes.d.ts.map +1 -1
  20. package/dist/index.d.ts +11 -5
  21. package/dist/index.d.ts.map +1 -1
  22. package/dist/index.js +7273 -2524
  23. package/dist/index.js.map +67 -33
  24. package/dist/providers/action-examples.d.ts +3 -2
  25. package/dist/providers/action-examples.d.ts.map +1 -1
  26. package/dist/providers/active-workspace-context.d.ts +5 -5
  27. package/dist/providers/active-workspace-context.d.ts.map +1 -1
  28. package/dist/services/config-env.d.ts +2 -0
  29. package/dist/services/config-env.d.ts.map +1 -1
  30. package/dist/services/pty-auto-response.d.ts.map +1 -1
  31. package/dist/services/pty-init.d.ts +4 -0
  32. package/dist/services/pty-init.d.ts.map +1 -1
  33. package/dist/services/pty-service.d.ts +16 -1
  34. package/dist/services/pty-service.d.ts.map +1 -1
  35. package/dist/services/pty-spawn.d.ts +1 -0
  36. package/dist/services/pty-spawn.d.ts.map +1 -1
  37. package/dist/services/pty-types.d.ts +4 -4
  38. package/dist/services/pty-types.d.ts.map +1 -1
  39. package/dist/services/stall-classifier.d.ts +1 -1
  40. package/dist/services/swarm-coordinator.d.ts +31 -4
  41. package/dist/services/swarm-coordinator.d.ts.map +1 -1
  42. package/dist/services/swarm-decision-loop.d.ts.map +1 -1
  43. package/dist/services/swarm-idle-watchdog.d.ts.map +1 -1
  44. package/dist/services/task-acceptance.d.ts +8 -0
  45. package/dist/services/task-acceptance.d.ts.map +1 -0
  46. package/dist/services/task-agent-frameworks.d.ts +52 -0
  47. package/dist/services/task-agent-frameworks.d.ts.map +1 -0
  48. package/dist/services/task-policy.d.ts +17 -0
  49. package/dist/services/task-policy.d.ts.map +1 -0
  50. package/dist/services/task-registry.d.ts +261 -0
  51. package/dist/services/task-registry.d.ts.map +1 -0
  52. package/dist/services/task-validation.d.ts +26 -0
  53. package/dist/services/task-validation.d.ts.map +1 -0
  54. package/dist/services/trajectory-context.d.ts +1 -1
  55. package/dist/services/trajectory-context.d.ts.map +1 -1
  56. package/package.json +8 -4
@@ -0,0 +1,261 @@
1
+ import type { IAgentRuntime } from "@elizaos/core";
2
+ import type { CodingAgentType } from "./pty-types.js";
3
+ export type TaskThreadKind = "coding" | "research" | "planning" | "ops" | "mixed";
4
+ export type TaskThreadStatus = "open" | "active" | "waiting_on_user" | "blocked" | "validating" | "done" | "failed" | "archived" | "interrupted";
5
+ export type TaskSessionStatus = "active" | "blocked" | "waiting_on_user" | "completed" | "stopped" | "error" | "tool_running" | "interrupted";
6
+ export type TaskThreadEventType = "task_created" | "task_registered" | "task_status_changed" | "task_archived" | "task_reopened" | "session_registered" | "session_updated" | "session_interrupted" | "decision_recorded" | "artifact_recorded" | "summary_updated";
7
+ export interface TaskThreadRecord {
8
+ id: string;
9
+ agentId: string;
10
+ roomId: string | null;
11
+ worldId: string | null;
12
+ ownerUserId: string | null;
13
+ title: string;
14
+ kind: TaskThreadKind;
15
+ status: TaskThreadStatus;
16
+ originalRequest: string;
17
+ summary: string;
18
+ acceptanceCriteria: string[];
19
+ currentPlan: Record<string, unknown>;
20
+ searchText: string;
21
+ createdAt: string;
22
+ updatedAt: string;
23
+ closedAt: string | null;
24
+ archivedAt: string | null;
25
+ lastUserTurnAt: string | null;
26
+ lastCoordinatorTurnAt: string | null;
27
+ metadata: Record<string, unknown>;
28
+ }
29
+ export interface TaskSessionRecord {
30
+ id: string;
31
+ threadId: string;
32
+ agentId: string;
33
+ sessionId: string;
34
+ framework: CodingAgentType;
35
+ providerSource: string | null;
36
+ label: string;
37
+ originalTask: string;
38
+ workdir: string;
39
+ repo: string | null;
40
+ status: TaskSessionStatus;
41
+ decisionCount: number;
42
+ autoResolvedCount: number;
43
+ registeredAt: number;
44
+ lastActivityAt: number;
45
+ idleCheckCount: number;
46
+ taskDelivered: boolean;
47
+ completionSummary: string | null;
48
+ lastSeenDecisionIndex: number;
49
+ lastInputSentAt: number | null;
50
+ stoppedAt: number | null;
51
+ createdAt: string;
52
+ updatedAt: string;
53
+ metadata: Record<string, unknown>;
54
+ }
55
+ export interface TaskDecisionRecord {
56
+ id: string;
57
+ threadId: string;
58
+ sessionId: string;
59
+ timestamp: number;
60
+ event: string;
61
+ promptText: string;
62
+ decision: string;
63
+ response: string | null;
64
+ reasoning: string;
65
+ metadata: Record<string, unknown>;
66
+ }
67
+ export interface TaskEventRecord {
68
+ id: string;
69
+ threadId: string;
70
+ sessionId: string | null;
71
+ eventType: TaskThreadEventType | string;
72
+ timestamp: number;
73
+ summary: string;
74
+ data: Record<string, unknown>;
75
+ createdAt: string;
76
+ }
77
+ export interface TaskArtifactRecord {
78
+ id: string;
79
+ threadId: string;
80
+ sessionId: string | null;
81
+ artifactType: string;
82
+ title: string;
83
+ path: string | null;
84
+ uri: string | null;
85
+ mimeType: string | null;
86
+ metadata: Record<string, unknown>;
87
+ createdAt: string;
88
+ }
89
+ export interface TaskTranscriptRecord {
90
+ id: string;
91
+ threadId: string;
92
+ sessionId: string;
93
+ timestamp: number;
94
+ direction: "stdout" | "stderr" | "stdin" | "keys" | "system";
95
+ content: string;
96
+ metadata: Record<string, unknown>;
97
+ createdAt: string;
98
+ }
99
+ export interface TaskPendingDecisionRecord {
100
+ sessionId: string;
101
+ threadId: string;
102
+ promptText: string;
103
+ recentOutput: string;
104
+ llmDecision: Record<string, unknown>;
105
+ taskContext: Record<string, unknown>;
106
+ createdAt: number;
107
+ updatedAt: string;
108
+ }
109
+ export interface TaskThreadSummary extends TaskThreadRecord {
110
+ sessionCount: number;
111
+ activeSessionCount: number;
112
+ latestSessionId: string | null;
113
+ latestSessionLabel: string | null;
114
+ latestWorkdir: string | null;
115
+ latestRepo: string | null;
116
+ latestActivityAt: number | null;
117
+ decisionCount: number;
118
+ }
119
+ export interface TaskThreadDetail extends TaskThreadSummary {
120
+ sessions: TaskSessionRecord[];
121
+ decisions: TaskDecisionRecord[];
122
+ events: TaskEventRecord[];
123
+ artifacts: TaskArtifactRecord[];
124
+ transcripts: TaskTranscriptRecord[];
125
+ }
126
+ export interface CreateTaskThreadInput {
127
+ id?: string;
128
+ title: string;
129
+ originalRequest: string;
130
+ kind?: TaskThreadKind;
131
+ roomId?: string | null;
132
+ worldId?: string | null;
133
+ ownerUserId?: string | null;
134
+ summary?: string;
135
+ acceptanceCriteria?: string[];
136
+ currentPlan?: Record<string, unknown>;
137
+ lastUserTurnAt?: string | null;
138
+ metadata?: Record<string, unknown>;
139
+ }
140
+ export interface RegisterTaskSessionInput {
141
+ threadId: string;
142
+ sessionId: string;
143
+ framework: CodingAgentType;
144
+ label: string;
145
+ originalTask: string;
146
+ workdir: string;
147
+ repo?: string;
148
+ providerSource?: string | null;
149
+ status?: TaskSessionStatus;
150
+ decisionCount?: number;
151
+ autoResolvedCount?: number;
152
+ registeredAt?: number;
153
+ lastActivityAt?: number;
154
+ idleCheckCount?: number;
155
+ taskDelivered?: boolean;
156
+ completionSummary?: string | null;
157
+ lastSeenDecisionIndex?: number;
158
+ lastInputSentAt?: number | null;
159
+ stoppedAt?: number | null;
160
+ metadata?: Record<string, unknown>;
161
+ }
162
+ export interface UpdateTaskSessionInput {
163
+ status?: TaskSessionStatus;
164
+ decisionCount?: number;
165
+ autoResolvedCount?: number;
166
+ lastActivityAt?: number;
167
+ idleCheckCount?: number;
168
+ taskDelivered?: boolean;
169
+ completionSummary?: string | null;
170
+ lastSeenDecisionIndex?: number;
171
+ lastInputSentAt?: number | null;
172
+ stoppedAt?: number | null;
173
+ metadata?: Record<string, unknown>;
174
+ }
175
+ export interface RecordTaskDecisionInput {
176
+ threadId: string;
177
+ sessionId: string;
178
+ timestamp: number;
179
+ event: string;
180
+ promptText: string;
181
+ decision: string;
182
+ response?: string;
183
+ reasoning: string;
184
+ metadata?: Record<string, unknown>;
185
+ }
186
+ export interface RecordTaskEventInput {
187
+ threadId: string;
188
+ sessionId?: string | null;
189
+ eventType: TaskThreadEventType | string;
190
+ timestamp?: number;
191
+ summary?: string;
192
+ data?: Record<string, unknown>;
193
+ }
194
+ export interface RecordTaskArtifactInput {
195
+ threadId: string;
196
+ sessionId?: string | null;
197
+ artifactType: string;
198
+ title: string;
199
+ path?: string | null;
200
+ uri?: string | null;
201
+ mimeType?: string | null;
202
+ metadata?: Record<string, unknown>;
203
+ }
204
+ export interface RecordTaskTranscriptInput {
205
+ threadId: string;
206
+ sessionId: string;
207
+ timestamp?: number;
208
+ direction: TaskTranscriptRecord["direction"];
209
+ content: string;
210
+ metadata?: Record<string, unknown>;
211
+ }
212
+ export interface UpsertPendingDecisionInput {
213
+ sessionId: string;
214
+ threadId: string;
215
+ promptText: string;
216
+ recentOutput: string;
217
+ llmDecision: Record<string, unknown>;
218
+ taskContext: Record<string, unknown>;
219
+ createdAt?: number;
220
+ }
221
+ export interface ListTaskThreadsOptions {
222
+ includeArchived?: boolean;
223
+ status?: TaskThreadStatus;
224
+ search?: string;
225
+ limit?: number;
226
+ }
227
+ export declare class TaskRegistry {
228
+ private readonly runtime;
229
+ constructor(runtime: IAgentRuntime);
230
+ private schemaKey;
231
+ ensureSchema(): Promise<void>;
232
+ recoverInterruptedTasks(): Promise<void>;
233
+ createThread(input: CreateTaskThreadInput): Promise<TaskThreadRecord>;
234
+ getThreadRecord(threadId: string): Promise<TaskThreadRecord | null>;
235
+ getThread(threadId: string): Promise<TaskThreadDetail | null>;
236
+ listThreads(options?: ListTaskThreadsOptions): Promise<TaskThreadSummary[]>;
237
+ getThreadSummary(threadId: string): Promise<TaskThreadSummary | null>;
238
+ findThreadIdBySessionId(sessionId: string): Promise<string | null>;
239
+ getSession(sessionId: string): Promise<TaskSessionRecord | null>;
240
+ registerSession(input: RegisterTaskSessionInput): Promise<void>;
241
+ updateSession(sessionId: string, patch: UpdateTaskSessionInput): Promise<void>;
242
+ recordDecision(input: RecordTaskDecisionInput): Promise<void>;
243
+ appendEvent(input: RecordTaskEventInput): Promise<void>;
244
+ recordArtifact(input: RecordTaskArtifactInput): Promise<void>;
245
+ recordTranscript(input: RecordTaskTranscriptInput): Promise<void>;
246
+ updateThreadSummary(threadId: string, summary: string): Promise<void>;
247
+ archiveThread(threadId: string): Promise<void>;
248
+ reopenThread(threadId: string): Promise<void>;
249
+ upsertPendingDecision(input: UpsertPendingDecisionInput): Promise<void>;
250
+ deletePendingDecision(sessionId: string): Promise<void>;
251
+ listPendingDecisions(): Promise<TaskPendingDecisionRecord[]>;
252
+ getLastUsedRepo(): Promise<string | undefined>;
253
+ listSessionsForThread(threadId: string): Promise<TaskSessionRecord[]>;
254
+ listDecisionsForThread(threadId: string): Promise<TaskDecisionRecord[]>;
255
+ listDecisionsForSession(sessionId: string): Promise<TaskDecisionRecord[]>;
256
+ listEventsForThread(threadId: string): Promise<TaskEventRecord[]>;
257
+ listArtifactsForThread(threadId: string): Promise<TaskArtifactRecord[]>;
258
+ listTranscriptsForThread(threadId: string): Promise<TaskTranscriptRecord[]>;
259
+ private recomputeThreadStatus;
260
+ }
261
+ //# sourceMappingURL=task-registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"task-registry.d.ts","sourceRoot":"","sources":["../../src/services/task-registry.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ import type { SwarmCoordinatorContext, TaskContext } from "./swarm-coordinator.js";
2
+ type ValidationVerdict = "pass" | "revise" | "escalate";
3
+ export interface TaskValidationResult {
4
+ verdict: ValidationVerdict;
5
+ summary: string;
6
+ followUpPrompt?: string;
7
+ reportPath: string;
8
+ artifacts: Array<{
9
+ artifactType: string;
10
+ title: string;
11
+ path?: string | null;
12
+ uri?: string | null;
13
+ mimeType?: string | null;
14
+ metadata?: Record<string, unknown>;
15
+ }>;
16
+ }
17
+ export interface ValidateTaskCompletionInput {
18
+ sessionId: string;
19
+ taskCtx: TaskContext;
20
+ completionReasoning: string;
21
+ completionSummary: string;
22
+ turnOutput: string;
23
+ }
24
+ export declare function validateTaskCompletion(ctx: SwarmCoordinatorContext, input: ValidateTaskCompletionInput): Promise<TaskValidationResult>;
25
+ export {};
26
+ //# sourceMappingURL=task-validation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"task-validation.d.ts","sourceRoot":"","sources":["../../src/services/task-validation.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EACV,uBAAuB,EACvB,WAAW,EACZ,MAAM,wBAAwB,CAAC;AAGhC,KAAK,iBAAiB,GAAG,MAAM,GAAG,QAAQ,GAAG,UAAU,CAAC;AAiBxD,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,iBAAiB,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,KAAK,CAAC;QACf,YAAY,EAAE,MAAM,CAAC;QACrB,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACrB,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACpB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACzB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACpC,CAAC,CAAC;CACJ;AAED,MAAM,WAAW,2BAA2B;IAC1C,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,WAAW,CAAC;IACrB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,UAAU,EAAE,MAAM,CAAC;CACpB;AAwXD,wBAAsB,sBAAsB,CAC1C,GAAG,EAAE,uBAAuB,EAC5B,KAAK,EAAE,2BAA2B,GACjC,OAAO,CAAC,oBAAoB,CAAC,CAiI/B"}
@@ -21,7 +21,7 @@ interface RuntimeLike {
21
21
  /**
22
22
  * Orchestrator decision types that map to specific LLM call sites.
23
23
  */
24
- export type OrchestratorDecisionType = "coordination" | "turn-complete" | "idle-check" | "stall-classification" | "stall-classify-decide" | "swarm-context-generation" | "event-triage";
24
+ export type OrchestratorDecisionType = "coordination" | "turn-complete" | "idle-check" | "stall-classification" | "stall-classify-decide" | "swarm-context-generation" | "event-triage" | "task-validation";
25
25
  export interface OrchestratorTrajectoryContext {
26
26
  /** Source identifier — always "orchestrator" */
27
27
  source: "orchestrator";
@@ -1 +1 @@
1
- {"version":3,"file":"trajectory-context.d.ts","sourceRoot":"","sources":["../../src/services/trajectory-context.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH;;;;GAIG;AAEH,UAAU,WAAW;CAAG;AAExB;;GAEG;AACH,MAAM,MAAM,wBAAwB,GAChC,cAAc,GACd,eAAe,GACf,YAAY,GACZ,sBAAsB,GACtB,uBAAuB,GACvB,0BAA0B,GAC1B,cAAc,CAAC;AAEnB,MAAM,WAAW,6BAA6B;IAC5C,gDAAgD;IAChD,MAAM,EAAE,cAAc,CAAC;IACvB,kDAAkD;IAClD,YAAY,EAAE,wBAAwB,CAAC;IACvC,kDAAkD;IAClD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gCAAgC;IAChC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,uEAAuE;IACvE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,+BAA+B;IAC/B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,sDAAsD;IACtD,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAID;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,WAAW,EACpB,GAAG,EAAE,6BAA6B,GACjC,IAAI,CAEN;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI,CAEjE;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,OAAO,GACf,6BAA6B,GAAG,SAAS,CAQ3C;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,qBAAqB,CAAC,CAAC,EAC3C,OAAO,EAAE,WAAW,EACpB,GAAG,EAAE,6BAA6B,EAClC,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GACnB,OAAO,CAAC,CAAC,CAAC,CAOZ"}
1
+ {"version":3,"file":"trajectory-context.d.ts","sourceRoot":"","sources":["../../src/services/trajectory-context.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH;;;;GAIG;AAEH,UAAU,WAAW;CAAG;AAExB;;GAEG;AACH,MAAM,MAAM,wBAAwB,GAChC,cAAc,GACd,eAAe,GACf,YAAY,GACZ,sBAAsB,GACtB,uBAAuB,GACvB,0BAA0B,GAC1B,cAAc,GACd,iBAAiB,CAAC;AAEtB,MAAM,WAAW,6BAA6B;IAC5C,gDAAgD;IAChD,MAAM,EAAE,cAAc,CAAC;IACvB,kDAAkD;IAClD,YAAY,EAAE,wBAAwB,CAAC;IACvC,kDAAkD;IAClD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gCAAgC;IAChC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,uEAAuE;IACvE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,+BAA+B;IAC/B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,sDAAsD;IACtD,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAID;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,WAAW,EACpB,GAAG,EAAE,6BAA6B,GACjC,IAAI,CAEN;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI,CAEjE;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,OAAO,GACf,6BAA6B,GAAG,SAAS,CAQ3C;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,qBAAqB,CAAC,CAAC,EAC3C,OAAO,EAAE,WAAW,EACpB,GAAG,EAAE,6BAA6B,EAClC,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GACnB,OAAO,CAAC,CAAC,CAAC,CAOZ"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@elizaos/plugin-agent-orchestrator",
3
- "version": "0.4.3",
4
- "description": "Coding agent orchestration plugin - spawn and manage CLI coding agents via PTY",
3
+ "version": "0.6.0",
4
+ "description": "Task-agent orchestration plugin - spawn and manage open-ended CLI task agents via PTY",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
7
7
  "module": "dist/index.js",
@@ -25,21 +25,25 @@
25
25
  "postinstall": "node ./scripts/ensure-node-pty.mjs",
26
26
  "build": "bun run build.ts",
27
27
  "test": "bun test",
28
+ "test:live": "ORCHESTRATOR_LIVE=1 bun test src/__tests__/task-agent-live.e2e.test.ts",
28
29
  "test:watch": "bun test --watch",
29
30
  "typecheck": "tsc --noEmit"
30
31
  },
31
32
  "peerDependencies": {
32
- "@elizaos/core": ">=2.0.0-alpha.0",
33
+ "@elizaos/core": "2.0.0-alpha.114",
33
34
  "git-workspace-service": "0.4.5",
34
35
  "pty-manager": "1.10.2"
35
36
  },
36
37
  "devDependencies": {
38
+ "@elizaos/core": "2.0.0-alpha.114",
37
39
  "@types/node": "^25.2.3",
40
+ "git-workspace-service": "0.4.5",
41
+ "pty-manager": "1.10.2",
38
42
  "typescript": "^5.9.3"
39
43
  },
40
44
  "license": "MIT",
41
45
  "dependencies": {
42
- "coding-agent-adapters": "0.15.0",
46
+ "coding-agent-adapters": "0.16.0",
43
47
  "pty-console": "0.3.1",
44
48
  "pty-state-capture": "0.2.0"
45
49
  }