@agentorg/cli 0.0.6 → 0.0.8
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.
- package/README.md +10 -7
- package/dist/node_modules/@agentorg/computer/LICENSE +201 -0
- package/dist/node_modules/@agentorg/computer/NOTICE +2 -0
- package/dist/node_modules/@agentorg/computer/dist/THIRD_PARTY_LICENSES.txt +1321 -0
- package/dist/node_modules/@agentorg/computer/dist/sdk.js +24909 -0
- package/dist/node_modules/@agentorg/computer/dist/types/generated/schema.d.ts +860 -0
- package/dist/node_modules/@agentorg/computer/dist/types/sdk.d.ts +242 -0
- package/dist/node_modules/@agentorg/computer/package.json +12 -0
- package/dist/node_modules/@agentorg/computer-connector/dist/src/index.d.ts +1 -0
- package/dist/node_modules/@agentorg/computer-connector/dist/src/index.js +1 -0
- package/dist/node_modules/@agentorg/computer-connector/dist/src/provider.d.ts +24 -0
- package/dist/node_modules/@agentorg/computer-connector/dist/src/provider.js +482 -0
- package/dist/node_modules/@agentorg/computer-connector/dist/src/unit.d.ts +19 -0
- package/dist/node_modules/@agentorg/computer-connector/dist/src/unit.js +149 -0
- package/dist/node_modules/@agentorg/computer-connector/package.json +33 -0
- package/dist/node_modules/@agentorg/computer-connector/skills/browser/SKILL.md +31 -0
- package/dist/node_modules/@agentorg/computer-connector/skills/computer/SKILL.md +30 -0
- package/dist/node_modules/@agentorg/computer-connector/skills/files/SKILL.md +28 -0
- package/dist/node_modules/@agentorg/computer-connector/skills/terminal/SKILL.md +39 -0
- package/dist/node_modules/@agentorg/computer-connector/skills/web-research/SKILL.md +29 -0
- package/dist/node_modules/@agentorg/hub/dist/src/router.d.ts +4 -2
- package/dist/node_modules/@agentorg/hub/dist/src/router.js +3 -1
- package/dist/node_modules/@agentorg/hub/dist/src/validate.js +16 -2
- package/dist/node_modules/@agentorg/interfaces/dist/src/agent-provider.d.ts +34 -47
- package/dist/node_modules/@agentorg/interfaces/dist/src/agent-provider.js +25 -34
- package/dist/node_modules/@agentorg/interfaces/dist/src/chat.d.ts +90 -50
- package/dist/node_modules/@agentorg/interfaces/dist/src/chat.js +69 -34
- package/dist/node_modules/@agentorg/interfaces/dist/src/connection.d.ts +36 -0
- package/dist/node_modules/@agentorg/interfaces/dist/src/connection.js +31 -0
- package/dist/node_modules/@agentorg/interfaces/dist/src/folders.d.ts +19 -0
- package/dist/node_modules/@agentorg/interfaces/dist/src/folders.js +25 -0
- package/dist/node_modules/@agentorg/interfaces/dist/src/index.d.ts +6 -4
- package/dist/node_modules/@agentorg/interfaces/dist/src/index.js +6 -4
- package/dist/node_modules/@agentorg/interfaces/dist/src/llm-session.d.ts +2 -0
- package/dist/node_modules/@agentorg/interfaces/dist/src/llm-session.js +2 -1
- package/dist/node_modules/@agentorg/interfaces/dist/src/manager.d.ts +381 -27
- package/dist/node_modules/@agentorg/interfaces/dist/src/manager.js +179 -15
- package/dist/node_modules/@agentorg/interfaces/dist/src/units.d.ts +460 -0
- package/dist/node_modules/@agentorg/interfaces/dist/src/units.js +204 -0
- package/dist/node_modules/@agentorg/looper/dist/src/index.d.ts +5 -0
- package/dist/node_modules/@agentorg/looper/dist/src/index.js +5 -0
- package/dist/node_modules/@agentorg/looper/dist/src/loop.d.ts +89 -0
- package/dist/node_modules/@agentorg/looper/dist/src/loop.js +366 -0
- package/dist/node_modules/@agentorg/looper/dist/src/looper.d.ts +81 -0
- package/dist/node_modules/@agentorg/looper/dist/src/looper.js +574 -0
- package/dist/node_modules/@agentorg/looper/dist/src/main.d.ts +34 -0
- package/dist/node_modules/@agentorg/looper/dist/src/main.js +116 -0
- package/dist/node_modules/@agentorg/looper/dist/src/record.d.ts +181 -0
- package/dist/node_modules/@agentorg/looper/dist/src/record.js +433 -0
- package/dist/node_modules/@agentorg/looper/dist/src/tools.d.ts +11 -0
- package/dist/node_modules/@agentorg/looper/dist/src/tools.js +42 -0
- package/dist/node_modules/@agentorg/looper/dist/src/types.d.ts +147 -0
- package/dist/node_modules/@agentorg/looper/dist/src/types.js +32 -0
- package/dist/node_modules/@agentorg/looper/package.json +24 -0
- package/dist/node_modules/@agentorg/manager/dist/src/activity.d.ts +18 -0
- package/dist/node_modules/@agentorg/manager/dist/src/activity.js +65 -0
- package/dist/node_modules/@agentorg/manager/dist/src/control.d.ts +134 -0
- package/dist/node_modules/@agentorg/manager/dist/src/control.js +1115 -0
- package/dist/node_modules/@agentorg/manager/dist/src/form.d.ts +40 -0
- package/dist/node_modules/@agentorg/manager/dist/src/form.js +191 -0
- package/dist/node_modules/@agentorg/manager/dist/src/manager.d.ts +4 -0
- package/dist/node_modules/@agentorg/manager/dist/src/manager.js +341 -189
- package/dist/node_modules/@agentorg/manager/dist/src/skills.d.ts +2 -0
- package/dist/node_modules/@agentorg/manager/dist/src/skills.js +7 -0
- package/dist/node_modules/@agentorg/manager/dist/src/stack.d.ts +454 -0
- package/dist/node_modules/@agentorg/manager/dist/src/stack.js +917 -0
- package/dist/node_modules/@agentorg/mcp/dist/src/connection.d.ts +2 -1
- package/dist/node_modules/@agentorg/mcp/dist/src/connection.js +8 -2
- package/dist/node_modules/@agentorg/mcp/dist/src/index.d.ts +3 -0
- package/dist/node_modules/@agentorg/mcp/dist/src/index.js +3 -0
- package/dist/node_modules/@agentorg/mcp/dist/src/kinds.d.ts +108 -0
- package/dist/node_modules/@agentorg/mcp/dist/src/kinds.js +95 -0
- package/dist/node_modules/@agentorg/mcp/dist/src/provider.d.ts +2 -2
- package/dist/node_modules/@agentorg/mcp/dist/src/provider.js +48 -18
- package/dist/node_modules/@agentorg/mcp/dist/src/public.d.ts +6 -0
- package/dist/node_modules/@agentorg/mcp/dist/src/public.js +72 -0
- package/dist/node_modules/@agentorg/sdk/dist/src/filled.d.ts +21 -0
- package/dist/node_modules/@agentorg/sdk/dist/src/filled.js +24 -0
- package/dist/node_modules/@agentorg/sdk/dist/src/index.d.ts +1 -0
- package/dist/node_modules/@agentorg/sdk/dist/src/index.js +1 -0
- package/dist/node_modules/@agentorg/shell/dist/app.css +1306 -181
- package/dist/node_modules/@agentorg/shell/dist/app.js +207 -166
- package/dist/node_modules/@agentorg/shell/package.json +6 -1
- package/dist/node_modules/assistant/dist/src/chats.d.ts +94 -0
- package/dist/node_modules/assistant/dist/src/chats.js +355 -0
- package/dist/node_modules/assistant/dist/src/engine.d.ts +26 -7
- package/dist/node_modules/assistant/dist/src/engine.js +107 -35
- package/dist/node_modules/assistant/dist/src/local-store.js +1 -1
- package/dist/node_modules/assistant/dist/src/provider.d.ts +1 -1
- package/dist/node_modules/assistant/dist/src/provider.js +47 -19
- package/dist/node_modules/assistant/dist/src/tools.d.ts +11 -28
- package/dist/node_modules/assistant/dist/src/tools.js +19 -40
- package/dist/node_modules/assistant/package.json +1 -0
- package/dist/src/api.js +4 -0
- package/dist/src/folders.d.ts +2 -0
- package/dist/src/folders.js +45 -0
- package/dist/src/gateway.d.ts +7 -1
- package/dist/src/gateway.js +81 -12
- package/dist/src/live.d.ts +17 -0
- package/dist/src/live.js +109 -0
- package/dist/src/programs.d.ts +7 -0
- package/dist/src/programs.js +29 -2
- package/dist/src/signin.d.ts +12 -3
- package/dist/src/signin.js +30 -6
- package/package.json +2 -1
- package/dist/node_modules/@agentorg/interfaces/dist/src/mcp-provider.d.ts +0 -88
- package/dist/node_modules/@agentorg/interfaces/dist/src/mcp-provider.js +0 -78
- package/dist/node_modules/assistant/dist/src/agent.d.ts +0 -62
- package/dist/node_modules/assistant/dist/src/agent.js +0 -226
- package/dist/node_modules/assistant/dist/src/history.d.ts +0 -97
- package/dist/node_modules/assistant/dist/src/history.js +0 -235
|
@@ -1,14 +1,93 @@
|
|
|
1
1
|
import { defineInterface, method } from "@agentorg/sdk";
|
|
2
2
|
import { z } from "zod";
|
|
3
|
-
import { AgentStatus, Answers, Creatable, CreatableId } from "./agent-provider.js";
|
|
3
|
+
import { AgentModels, AgentStatus, Answers, Creatable, CreatableId } from "./agent-provider.js";
|
|
4
4
|
import { SKILL_FILE_MAX, SkillEntry, SkillName, SkillPath } from "./agent-settings.js";
|
|
5
|
+
import { ConnectionKind, ConnectionParams, ConnectionSecrets, ConnectionState, ConnectionStatus, ConnectionTarget, } from "./connection.js";
|
|
5
6
|
import { Id, SlotName } from "./hub.js";
|
|
6
|
-
import {
|
|
7
|
+
import { ModelId } from "./llm-session.js";
|
|
8
|
+
import { FieldValues, LiveMode, LiveSurface, LiveTicket, Problem, ResultKind, Unit, UnitId, } from "./units.js";
|
|
7
9
|
const Time = z.string().max(64);
|
|
8
10
|
const ActorName = z.string().min(1).max(128);
|
|
9
11
|
const OnAgent = z.object({ agent: Id });
|
|
10
12
|
const OnConnection = z.object({ connection: Id });
|
|
11
13
|
const OnSkill = z.object({ name: SkillName });
|
|
14
|
+
const Purpose = z.string().max(2000);
|
|
15
|
+
/** A template's id. */
|
|
16
|
+
export const TemplateId = z
|
|
17
|
+
.string()
|
|
18
|
+
.regex(/^[a-z][a-z0-9-]*$/)
|
|
19
|
+
.max(64);
|
|
20
|
+
/** What a stack starts on: one base from an agent provider, with what it asks. */
|
|
21
|
+
export const StackBase = z.strictObject({
|
|
22
|
+
provider: Id,
|
|
23
|
+
creatable: CreatableId,
|
|
24
|
+
answers: Answers.optional(),
|
|
25
|
+
});
|
|
26
|
+
/**
|
|
27
|
+
* One unit of a stack, top to bottom. `needs` picks, by kind, which earlier unit (its position in
|
|
28
|
+
* `units`) gives what this one needs; a kind exactly one earlier unit gives needs no pick.
|
|
29
|
+
*/
|
|
30
|
+
export const StackUnit = z.strictObject({
|
|
31
|
+
provider: Id,
|
|
32
|
+
unit: UnitId,
|
|
33
|
+
values: FieldValues.optional(),
|
|
34
|
+
needs: z.record(ResultKind, z.number().int().min(0)).optional(),
|
|
35
|
+
});
|
|
36
|
+
/** A stack as it is created: each unit may also carry secrets, used once and never saved. */
|
|
37
|
+
const FilledUnit = StackUnit.extend({ secrets: ConnectionSecrets.optional() });
|
|
38
|
+
/** `template` notes the template it started from, for display only. */
|
|
39
|
+
export const Stack = z.strictObject({
|
|
40
|
+
base: StackBase,
|
|
41
|
+
units: z.array(FilledUnit).max(64),
|
|
42
|
+
template: TemplateId.optional(),
|
|
43
|
+
});
|
|
44
|
+
/** A provider in a template: by its Actor's name, so a template works on another home. */
|
|
45
|
+
const ProviderName = z.string().min(1).max(128);
|
|
46
|
+
/**
|
|
47
|
+
* A saved stack of prefills: nothing in it is locked, and no secret is in it; management refuses a
|
|
48
|
+
* value for a secret field. A required field with no value must still be filled at creation.
|
|
49
|
+
* `from` notes the template it was copied from, for display only: later changes to that one don't
|
|
50
|
+
* reach this one.
|
|
51
|
+
*/
|
|
52
|
+
export const Template = z.strictObject({
|
|
53
|
+
id: TemplateId,
|
|
54
|
+
title: z.string().min(1).max(128),
|
|
55
|
+
description: z.string().max(2000),
|
|
56
|
+
from: TemplateId.optional(),
|
|
57
|
+
base: StackBase.extend({ provider: ProviderName }),
|
|
58
|
+
units: z.array(StackUnit.extend({ provider: ProviderName })).max(64),
|
|
59
|
+
});
|
|
60
|
+
/** What is filled in for one unit of a template, by its position: prefills it replaces, and secrets. */
|
|
61
|
+
const Fill = z.strictObject({
|
|
62
|
+
values: FieldValues.optional(),
|
|
63
|
+
secrets: ConnectionSecrets.optional(),
|
|
64
|
+
});
|
|
65
|
+
/** A unit to add to a living agent: `needs` names, by kind, the instance to take each result from. */
|
|
66
|
+
const AddUnit = {
|
|
67
|
+
agent: Id,
|
|
68
|
+
unit: FilledUnit.omit({ needs: true }),
|
|
69
|
+
needs: z.record(ResultKind, Id).optional(),
|
|
70
|
+
};
|
|
71
|
+
/** A problem with a stack: on one unit (its position), or, with neither, on the whole. */
|
|
72
|
+
const StackProblem = Problem.extend({ unit: z.number().int().min(0).optional() });
|
|
73
|
+
/**
|
|
74
|
+
* One unit as an agent has it: what was filled in, never a secret. `instance` is management's own
|
|
75
|
+
* id for it, and `needs` names, by kind, the instance it took each result from.
|
|
76
|
+
*/
|
|
77
|
+
const AppliedUnit = z.object({
|
|
78
|
+
instance: Id,
|
|
79
|
+
provider: Id,
|
|
80
|
+
unit: UnitId,
|
|
81
|
+
title: z.string().min(1).max(128),
|
|
82
|
+
values: FieldValues,
|
|
83
|
+
needs: z.record(ResultKind, Id),
|
|
84
|
+
status: z.object({
|
|
85
|
+
state: ConnectionState,
|
|
86
|
+
detail: z.string().max(2000).optional(),
|
|
87
|
+
/** What of it can be opened live, through `agents.live`. */
|
|
88
|
+
surfaces: z.array(LiveSurface).max(16).optional(),
|
|
89
|
+
}),
|
|
90
|
+
});
|
|
12
91
|
/** Where a connection came from, written once when it was made. */
|
|
13
92
|
export const ConnectionOrigin = z.object({
|
|
14
93
|
provider: Id,
|
|
@@ -20,6 +99,20 @@ export const ConnectionOrigin = z.object({
|
|
|
20
99
|
madeFor: Id.optional(),
|
|
21
100
|
at: Time,
|
|
22
101
|
});
|
|
102
|
+
/** One call an agent made through its control unit that changed something, or was refused. */
|
|
103
|
+
const ActivityEntry = z.object({
|
|
104
|
+
/** Its place in the log, newest highest. */
|
|
105
|
+
seq: z.number().int().min(0),
|
|
106
|
+
at: Time,
|
|
107
|
+
/** The agent that called. */
|
|
108
|
+
caller: Id,
|
|
109
|
+
tool: z.string().min(1).max(128),
|
|
110
|
+
/** What it was about: an agent, a connection, a skill or a unit's instance. */
|
|
111
|
+
target: z.string().max(256).optional(),
|
|
112
|
+
outcome: z.enum(["done", "refused"]),
|
|
113
|
+
/** Why it was refused. Never a message an agent sent, or a secret. */
|
|
114
|
+
reason: z.string().max(2000).optional(),
|
|
115
|
+
});
|
|
23
116
|
/** An agent as the list shows it: its status is its provider's. */
|
|
24
117
|
const AgentEntry = z.object({
|
|
25
118
|
agent: Id,
|
|
@@ -27,6 +120,12 @@ const AgentEntry = z.object({
|
|
|
27
120
|
status: AgentStatus,
|
|
28
121
|
provider: Id,
|
|
29
122
|
creatable: CreatableId,
|
|
123
|
+
/** What it's for, as whoever made it said. */
|
|
124
|
+
purpose: Purpose.optional(),
|
|
125
|
+
/** The template it started from, for display only. */
|
|
126
|
+
template: TemplateId.optional(),
|
|
127
|
+
/** The agent that made it; `gone` once that agent has been removed. It is the person's either way. */
|
|
128
|
+
parent: z.object({ agent: Id, name: ActorName, gone: z.literal(true).optional() }).optional(),
|
|
30
129
|
});
|
|
31
130
|
/**
|
|
32
131
|
* `agents@1`: the agents the person has, each made from a creatable a connected agent provider
|
|
@@ -47,19 +146,43 @@ export const agents = defineInterface({
|
|
|
47
146
|
input: z.object({}),
|
|
48
147
|
output: z.object({ providers: z.array(z.object({ provider: Id, name: ActorName })) }),
|
|
49
148
|
}),
|
|
149
|
+
/** Every base and unit the connected providers offer, each naming its provider. */
|
|
150
|
+
units: method({
|
|
151
|
+
input: z.object({}),
|
|
152
|
+
output: z.object({
|
|
153
|
+
bases: z.array(Creatable.extend({ provider: Id, providerName: ActorName })),
|
|
154
|
+
units: z.array(Unit.extend({ provider: Id, providerName: ActorName })),
|
|
155
|
+
}),
|
|
156
|
+
}),
|
|
157
|
+
/** The templates: what the app ships and what the person saved. */
|
|
158
|
+
templates: method({
|
|
159
|
+
input: z.object({}),
|
|
160
|
+
output: z.object({ templates: z.array(Template) }),
|
|
161
|
+
}),
|
|
162
|
+
/** Save a template, replacing the one of its id. A saved template holds no secret. */
|
|
163
|
+
saveTemplate: method({ input: Template, output: z.object({}) }),
|
|
164
|
+
removeTemplate: method({ input: z.object({ id: TemplateId }), output: z.object({}) }),
|
|
165
|
+
/** Check a stack, or a unit to add to a living agent, before anything runs. It changes nothing. */
|
|
166
|
+
check: method({
|
|
167
|
+
input: z.union([z.strictObject({ stack: Stack }), z.strictObject(AddUnit)]),
|
|
168
|
+
output: z.object({ problems: z.array(StackProblem).max(256) }),
|
|
169
|
+
}),
|
|
50
170
|
/**
|
|
51
|
-
* Make an agent
|
|
52
|
-
*
|
|
53
|
-
*
|
|
171
|
+
* Make an agent, from a stack, or from a template with what is filled in for each of its units
|
|
172
|
+
* by position; nothing in a template is locked, so a caller changing more sends the stack. All
|
|
173
|
+
* or none: if any step fails, what this creation made is removed, last first.
|
|
54
174
|
*/
|
|
55
175
|
create: method({
|
|
56
|
-
input: z.
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
176
|
+
input: z.union([
|
|
177
|
+
z.strictObject({ stack: Stack, name: ActorName, purpose: Purpose.optional() }),
|
|
178
|
+
z.strictObject({
|
|
179
|
+
template: TemplateId,
|
|
180
|
+
fill: z.array(Fill).max(64).optional(),
|
|
181
|
+
answers: Answers.optional(),
|
|
182
|
+
name: ActorName,
|
|
183
|
+
purpose: Purpose.optional(),
|
|
184
|
+
}),
|
|
185
|
+
]),
|
|
63
186
|
output: OnAgent,
|
|
64
187
|
}),
|
|
65
188
|
list: method({ input: z.object({}), output: z.object({ agents: z.array(AgentEntry) }) }),
|
|
@@ -68,18 +191,35 @@ export const agents = defineInterface({
|
|
|
68
191
|
input: OnAgent,
|
|
69
192
|
output: AgentEntry.extend({
|
|
70
193
|
instructions: z.string().max(200_000),
|
|
71
|
-
|
|
194
|
+
/** Which unit gave each is its `instance`. */
|
|
195
|
+
skills: z.array(SkillEntry.extend({ instance: Id.optional() })),
|
|
72
196
|
mcp: z.array(z.object({
|
|
73
197
|
slot: SlotName,
|
|
74
198
|
connection: Id,
|
|
75
199
|
origin: ConnectionOrigin.optional(),
|
|
76
200
|
status: ConnectionStatus,
|
|
201
|
+
instance: Id.optional(),
|
|
77
202
|
})),
|
|
203
|
+
/** Its stack, top to bottom. */
|
|
204
|
+
units: z.array(AppliedUnit),
|
|
78
205
|
}),
|
|
79
206
|
}),
|
|
80
207
|
start: method({ input: OnAgent, output: z.object({}) }),
|
|
81
|
-
/**
|
|
208
|
+
/**
|
|
209
|
+
* Stops the agent: whatever it was doing ends, and it does nothing until started; all else
|
|
210
|
+
* stays. This is the one way to stop an agent's work.
|
|
211
|
+
*/
|
|
82
212
|
stop: method({ input: OnAgent, output: z.object({}) }),
|
|
213
|
+
/** The models the agent can use, and the one chosen, as its provider says. */
|
|
214
|
+
models: method({ input: OnAgent, output: AgentModels }),
|
|
215
|
+
/**
|
|
216
|
+
* Choose the model for the agent's next requests; with no `model`, go back to its provider's
|
|
217
|
+
* default. Refused `unknown` when the model isn't one of `models`.
|
|
218
|
+
*/
|
|
219
|
+
setModel: method({
|
|
220
|
+
input: OnAgent.extend({ model: ModelId.optional() }),
|
|
221
|
+
output: z.object({}),
|
|
222
|
+
}),
|
|
83
223
|
/** Expose a skill or a connection to the agent; `as` names a connection's slot. */
|
|
84
224
|
expose: method({
|
|
85
225
|
input: z.union([
|
|
@@ -95,7 +235,31 @@ export const agents = defineInterface({
|
|
|
95
235
|
]),
|
|
96
236
|
output: z.object({}),
|
|
97
237
|
}),
|
|
98
|
-
/**
|
|
238
|
+
/** Add a unit to a living agent, below those it has; it takes effect at the next request. */
|
|
239
|
+
addUnit: method({ input: z.strictObject(AddUnit), output: z.object({ instance: Id }) }),
|
|
240
|
+
/** Remove a unit from a living agent: what it made goes. Refused `state` while another needs it. */
|
|
241
|
+
removeUnit: method({ input: z.object({ agent: Id, instance: Id }), output: z.object({}) }),
|
|
242
|
+
/**
|
|
243
|
+
* What agents did through their control units, newest first: each call that changed something,
|
|
244
|
+
* and each refusal. With `agent`, those it made or that were about it.
|
|
245
|
+
*/
|
|
246
|
+
activity: method({
|
|
247
|
+
input: z.object({
|
|
248
|
+
agent: Id.optional(),
|
|
249
|
+
before: z.number().int().min(0).optional(),
|
|
250
|
+
limit: z.number().int().min(1).max(200).optional(),
|
|
251
|
+
}),
|
|
252
|
+
output: z.object({ entries: z.array(ActivityEntry), more: z.boolean() }),
|
|
253
|
+
}),
|
|
254
|
+
/**
|
|
255
|
+
* A one-time ticket to open one of a unit's surfaces live. For the person's gateway, which dials
|
|
256
|
+
* it and pipes the bytes to a page; it never reaches a page itself. No agent can ask for one.
|
|
257
|
+
*/
|
|
258
|
+
live: method({
|
|
259
|
+
input: z.object({ agent: Id, instance: Id, surface: UnitId, mode: LiveMode }),
|
|
260
|
+
output: LiveTicket,
|
|
261
|
+
}),
|
|
262
|
+
/** Final: removes the units, last first, then the agent, and the connections made for it. */
|
|
99
263
|
remove: method({ input: OnAgent, output: z.object({}) }),
|
|
100
264
|
},
|
|
101
265
|
});
|