@stratusagent/core 0.1.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.
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Stratus Labs
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,7 @@
1
+ # @stratusagent/core
2
+
3
+ The Stratus Agent kernel: contracts for sessions, providers, tools, agents, memory, credentials, and events, plus a minimal multi-turn orchestration runtime (`AgentRunner`) with in-memory defaults.
4
+
5
+ Providers, executors, transports, and UIs live in separate packages — core stays small, dependency-light, and platform-agnostic.
6
+
7
+ See the [repository README](https://github.com/stratuslabs/agent) for the full picture.
@@ -0,0 +1,280 @@
1
+ export type JsonValue = string | number | boolean | null | JsonObject | JsonValue[];
2
+ export type JsonObject = {
3
+ [key: string]: JsonValue;
4
+ };
5
+ export type SessionStatus = 'idle' | 'running' | 'completed' | 'failed';
6
+ export type MessageRole = 'system' | 'user' | 'assistant' | 'tool';
7
+ export interface Message {
8
+ id: string;
9
+ role: MessageRole;
10
+ content: string;
11
+ name?: string;
12
+ createdAt: string;
13
+ toolCalls?: ToolCall[];
14
+ toolResult?: ToolResult;
15
+ }
16
+ export interface AgentDescriptor {
17
+ id: string;
18
+ name: string;
19
+ instructions?: string;
20
+ }
21
+ export interface AvatarTheme {
22
+ seed: string;
23
+ hue: number;
24
+ palette: string[];
25
+ style: string;
26
+ }
27
+ /**
28
+ * A full agent identity. An agent is one "person": the same definition —
29
+ * memory, tool access, credentials — applies no matter which channel,
30
+ * thread, or session the agent is talking through.
31
+ */
32
+ export interface AgentDefinition extends AgentDescriptor {
33
+ avatar?: AvatarTheme;
34
+ /** Tool names this agent may call. Omitted = every registered tool. */
35
+ tools?: string[];
36
+ /** Credential names this agent may resolve. Omitted = none. */
37
+ credentials?: string[];
38
+ }
39
+ export declare class AgentRegistry {
40
+ private agents;
41
+ register(agent: AgentDefinition): AgentDefinition;
42
+ get(id: string): AgentDefinition | undefined;
43
+ /**
44
+ * Look up an agent by display name. Names are not required to be unique
45
+ * (ids are), so an ambiguous name throws rather than silently picking one
46
+ * — routing work to the wrong identity would cross memory and access
47
+ * scopes.
48
+ */
49
+ getByName(name: string): AgentDefinition | undefined;
50
+ require(id: string): AgentDefinition;
51
+ list(): AgentDefinition[];
52
+ }
53
+ export interface Session {
54
+ id: string;
55
+ agent: AgentDescriptor;
56
+ status: SessionStatus;
57
+ messages: Message[];
58
+ createdAt: string;
59
+ updatedAt: string;
60
+ metadata?: JsonObject;
61
+ lastError?: string;
62
+ }
63
+ export interface ToolCall {
64
+ id: string;
65
+ toolName: string;
66
+ input: JsonObject;
67
+ }
68
+ export interface ToolResult {
69
+ callId: string;
70
+ toolName: string;
71
+ ok: boolean;
72
+ output: JsonValue;
73
+ error?: string;
74
+ }
75
+ export type ProviderPart = {
76
+ type: 'text';
77
+ text: string;
78
+ } | {
79
+ type: 'tool-call';
80
+ call: ToolCall;
81
+ };
82
+ export interface ToolDescriptor {
83
+ name: string;
84
+ description?: string;
85
+ parameters?: JsonObject;
86
+ }
87
+ /**
88
+ * One remembered fact. Memory is keyed by agent, never by session or
89
+ * channel, so an agent carries the same knowledge everywhere it appears.
90
+ */
91
+ export interface MemoryEntry {
92
+ id: string;
93
+ agentId: string;
94
+ content: string;
95
+ createdAt: string;
96
+ metadata?: JsonObject;
97
+ }
98
+ export interface AgentMemoryStore {
99
+ append(agentId: string, content: string, metadata?: JsonObject): Promise<MemoryEntry>;
100
+ list(agentId: string): Promise<MemoryEntry[]>;
101
+ }
102
+ export declare class InMemoryAgentMemoryStore implements AgentMemoryStore {
103
+ private entries;
104
+ private counter;
105
+ append(agentId: string, content: string, metadata?: JsonObject): Promise<MemoryEntry>;
106
+ list(agentId: string): Promise<MemoryEntry[]>;
107
+ }
108
+ /**
109
+ * Resolves named credentials for an agent. Implementations must enforce the
110
+ * agent's `credentials` allowlist so secrets stay scoped per agent.
111
+ */
112
+ export interface CredentialResolver {
113
+ resolve(agent: AgentDefinition, name: string): Promise<string | undefined>;
114
+ }
115
+ export interface ScopedCredentials {
116
+ get(name: string): Promise<string>;
117
+ }
118
+ export declare class EnvCredentialResolver implements CredentialResolver {
119
+ private readonly env;
120
+ constructor(env: Record<string, string | undefined>);
121
+ resolve(agent: AgentDefinition, name: string): Promise<string | undefined>;
122
+ }
123
+ export declare const scopeCredentials: (agent: AgentDefinition, resolver: CredentialResolver) => ScopedCredentials;
124
+ export interface ProviderRequest {
125
+ session: Session;
126
+ tools?: ToolDescriptor[];
127
+ /** Agent-scoped long-term memory, newest last. */
128
+ memory?: MemoryEntry[];
129
+ }
130
+ export interface ProviderResponse {
131
+ parts: ProviderPart[];
132
+ }
133
+ export interface ModelProvider {
134
+ name: string;
135
+ generate(request: ProviderRequest): Promise<ProviderResponse>;
136
+ }
137
+ export interface Tool {
138
+ name: string;
139
+ description?: string;
140
+ /** JSON Schema describing the tool's input, advertised to model providers. */
141
+ parameters?: JsonObject;
142
+ execute(input: JsonObject, session: Session): Promise<JsonValue>;
143
+ }
144
+ export interface Executor {
145
+ execute(call: ToolCall, tool: Tool, session: Session): Promise<ToolResult>;
146
+ }
147
+ export interface ApprovalContext {
148
+ session: Session;
149
+ call: ToolCall;
150
+ }
151
+ export interface ApprovalPolicy {
152
+ approve(context: ApprovalContext): Promise<boolean>;
153
+ }
154
+ export type StratusEvent = {
155
+ type: 'session.created';
156
+ sessionId: string;
157
+ agentId: string;
158
+ } | {
159
+ type: 'session.updated';
160
+ sessionId: string;
161
+ status: SessionStatus;
162
+ } | {
163
+ type: 'provider.response';
164
+ sessionId: string;
165
+ parts: ProviderPart[];
166
+ } | {
167
+ type: 'tool.called';
168
+ sessionId: string;
169
+ call: ToolCall;
170
+ } | {
171
+ type: 'tool.completed';
172
+ sessionId: string;
173
+ result: ToolResult;
174
+ } | {
175
+ type: 'tool.denied';
176
+ sessionId: string;
177
+ call: ToolCall;
178
+ } | {
179
+ type: 'session.completed';
180
+ sessionId: string;
181
+ } | {
182
+ type: 'session.failed';
183
+ sessionId: string;
184
+ error: string;
185
+ };
186
+ export type EventHandler = (event: StratusEvent) => void | Promise<void>;
187
+ export interface EventBusOptions {
188
+ /** Called when a subscriber throws. Handler errors never interrupt the run. */
189
+ onError?: (error: unknown, event: StratusEvent) => void;
190
+ }
191
+ export declare class EventBus {
192
+ private handlers;
193
+ private readonly onError;
194
+ constructor(options?: EventBusOptions);
195
+ subscribe(handler: EventHandler): () => void;
196
+ emit(event: StratusEvent): Promise<void>;
197
+ }
198
+ export interface SessionStore {
199
+ create(input: Omit<Session, 'createdAt' | 'updatedAt'>): Promise<Session>;
200
+ get(id: string): Promise<Session | undefined>;
201
+ save(session: Session): Promise<void>;
202
+ }
203
+ export declare class InMemorySessionStore implements SessionStore {
204
+ private sessions;
205
+ create(input: Omit<Session, 'createdAt' | 'updatedAt'>): Promise<Session>;
206
+ get(id: string): Promise<Session | undefined>;
207
+ save(session: Session): Promise<void>;
208
+ }
209
+ export interface PluginContext {
210
+ bus: EventBus;
211
+ tools: ToolRegistry;
212
+ }
213
+ export interface Plugin {
214
+ name: string;
215
+ setup(context: PluginContext): Promise<void> | void;
216
+ }
217
+ export declare class PluginRegistry {
218
+ private plugins;
219
+ register(plugin: Plugin): void;
220
+ loadAll(context: PluginContext): Promise<void>;
221
+ }
222
+ export declare class ToolRegistry {
223
+ private tools;
224
+ register(tool: Tool): void;
225
+ get(name: string): Tool | undefined;
226
+ list(): Tool[];
227
+ describe(): ToolDescriptor[];
228
+ }
229
+ export declare class DefaultExecutor implements Executor {
230
+ execute(call: ToolCall, tool: Tool, session: Session): Promise<ToolResult>;
231
+ }
232
+ export declare class AllowAllApprovalPolicy implements ApprovalPolicy {
233
+ approve(): Promise<boolean>;
234
+ }
235
+ export interface RunInput {
236
+ sessionId: string;
237
+ agent: AgentDescriptor;
238
+ userMessage: string;
239
+ metadata?: JsonObject;
240
+ }
241
+ export interface ResumeInput {
242
+ sessionId: string;
243
+ userMessage: string;
244
+ }
245
+ export interface AgentRunnerOptions {
246
+ provider: ModelProvider;
247
+ tools?: ToolRegistry;
248
+ executor?: Executor;
249
+ approvals?: ApprovalPolicy;
250
+ store?: SessionStore;
251
+ bus?: EventBus;
252
+ plugins?: PluginRegistry;
253
+ /** Known agent definitions; enables per-agent tool allowlists. */
254
+ agents?: AgentRegistry;
255
+ /** Agent-scoped long-term memory, injected into every provider request. */
256
+ memory?: AgentMemoryStore;
257
+ /** Maximum provider turns per run before the session fails. */
258
+ maxTurns?: number;
259
+ }
260
+ export declare class AgentRunner {
261
+ readonly bus: EventBus;
262
+ readonly store: SessionStore;
263
+ readonly tools: ToolRegistry;
264
+ readonly executor: Executor;
265
+ readonly approvals: ApprovalPolicy;
266
+ readonly plugins: PluginRegistry;
267
+ readonly agents: AgentRegistry;
268
+ readonly memory: AgentMemoryStore | undefined;
269
+ readonly maxTurns: number;
270
+ private readonly options;
271
+ constructor(options: AgentRunnerOptions);
272
+ initialize(): Promise<void>;
273
+ run(input: RunInput): Promise<Session>;
274
+ resume(input: ResumeInput): Promise<Session>;
275
+ /** Tool names this session's agent may use, or undefined for no limit. */
276
+ private allowedToolsFor;
277
+ private executeTurns;
278
+ private executeToolCall;
279
+ }
280
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js ADDED
@@ -0,0 +1,347 @@
1
+ export class AgentRegistry {
2
+ agents = new Map();
3
+ register(agent) {
4
+ this.agents.set(agent.id, agent);
5
+ return agent;
6
+ }
7
+ get(id) {
8
+ return this.agents.get(id);
9
+ }
10
+ /**
11
+ * Look up an agent by display name. Names are not required to be unique
12
+ * (ids are), so an ambiguous name throws rather than silently picking one
13
+ * — routing work to the wrong identity would cross memory and access
14
+ * scopes.
15
+ */
16
+ getByName(name) {
17
+ const matches = this.list().filter((agent) => agent.name === name);
18
+ if (matches.length > 1) {
19
+ throw new Error(`Agent name is ambiguous: ${name} (ids: ${matches.map((agent) => agent.id).join(', ')}). Use the id instead.`);
20
+ }
21
+ return matches[0];
22
+ }
23
+ require(id) {
24
+ const agent = this.agents.get(id);
25
+ if (!agent) {
26
+ throw new Error(`Agent not found: ${id}`);
27
+ }
28
+ return agent;
29
+ }
30
+ list() {
31
+ return [...this.agents.values()];
32
+ }
33
+ }
34
+ export class InMemoryAgentMemoryStore {
35
+ entries = new Map();
36
+ counter = 0;
37
+ async append(agentId, content, metadata) {
38
+ this.counter += 1;
39
+ const entry = {
40
+ id: `${agentId}:memory:${this.counter}`,
41
+ agentId,
42
+ content,
43
+ createdAt: new Date().toISOString(),
44
+ ...(metadata ? { metadata } : {}),
45
+ };
46
+ const existing = this.entries.get(agentId) ?? [];
47
+ existing.push(entry);
48
+ this.entries.set(agentId, existing);
49
+ return entry;
50
+ }
51
+ async list(agentId) {
52
+ return [...(this.entries.get(agentId) ?? [])];
53
+ }
54
+ }
55
+ export class EnvCredentialResolver {
56
+ env;
57
+ // Pass process.env (or any map) explicitly — core stays platform-agnostic.
58
+ constructor(env) {
59
+ this.env = env;
60
+ }
61
+ async resolve(agent, name) {
62
+ if (!agent.credentials?.includes(name)) {
63
+ throw new Error(`Agent ${agent.id} is not allowed to access credential: ${name}`);
64
+ }
65
+ return this.env[name];
66
+ }
67
+ }
68
+ export const scopeCredentials = (agent, resolver) => ({
69
+ async get(name) {
70
+ const value = await resolver.resolve(agent, name);
71
+ if (value === undefined) {
72
+ throw new Error(`Credential not found: ${name}`);
73
+ }
74
+ return value;
75
+ },
76
+ });
77
+ export class EventBus {
78
+ handlers = new Set();
79
+ onError;
80
+ constructor(options = {}) {
81
+ this.onError = options.onError;
82
+ }
83
+ subscribe(handler) {
84
+ this.handlers.add(handler);
85
+ return () => this.handlers.delete(handler);
86
+ }
87
+ async emit(event) {
88
+ for (const handler of this.handlers) {
89
+ try {
90
+ await handler(event);
91
+ }
92
+ catch (error) {
93
+ this.onError?.(error, event);
94
+ }
95
+ }
96
+ }
97
+ }
98
+ export class InMemorySessionStore {
99
+ sessions = new Map();
100
+ async create(input) {
101
+ const now = new Date().toISOString();
102
+ const session = { ...input, createdAt: now, updatedAt: now };
103
+ this.sessions.set(session.id, session);
104
+ return session;
105
+ }
106
+ async get(id) {
107
+ return this.sessions.get(id);
108
+ }
109
+ async save(session) {
110
+ this.sessions.set(session.id, { ...session, updatedAt: new Date().toISOString() });
111
+ }
112
+ }
113
+ export class PluginRegistry {
114
+ plugins = [];
115
+ register(plugin) {
116
+ this.plugins.push(plugin);
117
+ }
118
+ async loadAll(context) {
119
+ for (const plugin of this.plugins) {
120
+ await plugin.setup(context);
121
+ }
122
+ }
123
+ }
124
+ export class ToolRegistry {
125
+ tools = new Map();
126
+ register(tool) {
127
+ this.tools.set(tool.name, tool);
128
+ }
129
+ get(name) {
130
+ return this.tools.get(name);
131
+ }
132
+ list() {
133
+ return [...this.tools.values()];
134
+ }
135
+ describe() {
136
+ return this.list().map((tool) => ({
137
+ name: tool.name,
138
+ ...(tool.description ? { description: tool.description } : {}),
139
+ ...(tool.parameters ? { parameters: tool.parameters } : {}),
140
+ }));
141
+ }
142
+ }
143
+ export class DefaultExecutor {
144
+ async execute(call, tool, session) {
145
+ try {
146
+ const output = await tool.execute(call.input, session);
147
+ return { callId: call.id, toolName: call.toolName, ok: true, output };
148
+ }
149
+ catch (error) {
150
+ return {
151
+ callId: call.id,
152
+ toolName: call.toolName,
153
+ ok: false,
154
+ output: null,
155
+ error: error instanceof Error ? error.message : String(error),
156
+ };
157
+ }
158
+ }
159
+ }
160
+ export class AllowAllApprovalPolicy {
161
+ async approve() {
162
+ return true;
163
+ }
164
+ }
165
+ const DEFAULT_MAX_TURNS = 8;
166
+ export class AgentRunner {
167
+ bus;
168
+ store;
169
+ tools;
170
+ executor;
171
+ approvals;
172
+ plugins;
173
+ agents;
174
+ memory;
175
+ maxTurns;
176
+ options;
177
+ constructor(options) {
178
+ this.options = options;
179
+ this.bus = options.bus ?? new EventBus();
180
+ this.store = options.store ?? new InMemorySessionStore();
181
+ this.tools = options.tools ?? new ToolRegistry();
182
+ this.executor = options.executor ?? new DefaultExecutor();
183
+ this.approvals = options.approvals ?? new AllowAllApprovalPolicy();
184
+ this.plugins = options.plugins ?? new PluginRegistry();
185
+ this.agents = options.agents ?? new AgentRegistry();
186
+ this.memory = options.memory;
187
+ this.maxTurns = options.maxTurns ?? DEFAULT_MAX_TURNS;
188
+ }
189
+ async initialize() {
190
+ await this.plugins.loadAll({ bus: this.bus, tools: this.tools });
191
+ }
192
+ async run(input) {
193
+ const sessionInput = {
194
+ id: input.sessionId,
195
+ agent: input.agent,
196
+ status: 'running',
197
+ messages: [
198
+ {
199
+ id: `${input.sessionId}:user:1`,
200
+ role: 'user',
201
+ content: input.userMessage,
202
+ createdAt: new Date().toISOString(),
203
+ },
204
+ ],
205
+ };
206
+ if (input.metadata) {
207
+ sessionInput.metadata = input.metadata;
208
+ }
209
+ const session = await this.store.create(sessionInput);
210
+ await this.bus.emit({ type: 'session.created', sessionId: session.id, agentId: session.agent.id });
211
+ await this.bus.emit({ type: 'session.updated', sessionId: session.id, status: session.status });
212
+ return this.executeTurns(session);
213
+ }
214
+ async resume(input) {
215
+ const session = await this.store.get(input.sessionId);
216
+ if (!session) {
217
+ throw new Error(`Session not found: ${input.sessionId}`);
218
+ }
219
+ session.status = 'running';
220
+ delete session.lastError;
221
+ session.messages.push({
222
+ id: `${session.id}:user:${session.messages.length + 1}`,
223
+ role: 'user',
224
+ content: input.userMessage,
225
+ createdAt: new Date().toISOString(),
226
+ });
227
+ await this.bus.emit({ type: 'session.updated', sessionId: session.id, status: session.status });
228
+ return this.executeTurns(session);
229
+ }
230
+ /** Tool names this session's agent may use, or undefined for no limit. */
231
+ allowedToolsFor(session) {
232
+ // The definition handed to run()/resume() travels with the session, so an
233
+ // agent's own allowlist applies even when it was never registered.
234
+ const sessionAgent = session.agent;
235
+ const tools = sessionAgent.tools ?? this.agents.get(session.agent.id)?.tools;
236
+ return tools ? new Set(tools) : undefined;
237
+ }
238
+ async executeTurns(initialSession) {
239
+ let session = initialSession;
240
+ try {
241
+ const allowedTools = this.allowedToolsFor(session);
242
+ const tools = this.tools
243
+ .describe()
244
+ .filter((tool) => allowedTools === undefined || allowedTools.has(tool.name));
245
+ for (let turn = 1;; turn += 1) {
246
+ if (turn > this.maxTurns) {
247
+ throw new Error(`Session exceeded the maximum of ${this.maxTurns} provider turns.`);
248
+ }
249
+ const memory = this.memory ? await this.memory.list(session.agent.id) : [];
250
+ const response = await this.options.provider.generate({
251
+ session,
252
+ ...(tools.length > 0 ? { tools } : {}),
253
+ ...(memory.length > 0 ? { memory } : {}),
254
+ });
255
+ await this.bus.emit({ type: 'provider.response', sessionId: session.id, parts: response.parts });
256
+ let sawToolCall = false;
257
+ for (const part of response.parts) {
258
+ if (part.type === 'text') {
259
+ session.messages.push({
260
+ id: `${session.id}:assistant:${session.messages.length + 1}`,
261
+ role: 'assistant',
262
+ content: part.text,
263
+ createdAt: new Date().toISOString(),
264
+ });
265
+ continue;
266
+ }
267
+ sawToolCall = true;
268
+ session.messages.push({
269
+ id: `${session.id}:assistant:${session.messages.length + 1}`,
270
+ role: 'assistant',
271
+ content: '',
272
+ createdAt: new Date().toISOString(),
273
+ toolCalls: [part.call],
274
+ });
275
+ const result = await this.executeToolCall(session, part.call);
276
+ session.messages.push({
277
+ id: `${session.id}:tool:${result.callId}`,
278
+ role: 'tool',
279
+ name: result.toolName,
280
+ content: JSON.stringify(result),
281
+ createdAt: new Date().toISOString(),
282
+ toolResult: result,
283
+ });
284
+ }
285
+ if (!sawToolCall) {
286
+ break;
287
+ }
288
+ }
289
+ session.status = 'completed';
290
+ await this.store.save(session);
291
+ const stored = await this.store.get(session.id);
292
+ session = stored ?? session;
293
+ await this.bus.emit({ type: 'session.updated', sessionId: session.id, status: session.status });
294
+ await this.bus.emit({ type: 'session.completed', sessionId: session.id });
295
+ return session;
296
+ }
297
+ catch (error) {
298
+ const lastError = error instanceof Error ? error.message : String(error);
299
+ session.status = 'failed';
300
+ session.lastError = lastError;
301
+ await this.store.save(session);
302
+ const stored = await this.store.get(session.id);
303
+ session = stored ?? session;
304
+ await this.bus.emit({ type: 'session.updated', sessionId: session.id, status: session.status });
305
+ await this.bus.emit({ type: 'session.failed', sessionId: session.id, error: lastError });
306
+ throw error;
307
+ }
308
+ }
309
+ async executeToolCall(session, call) {
310
+ const allowedTools = this.allowedToolsFor(session);
311
+ if (allowedTools !== undefined && !allowedTools.has(call.toolName)) {
312
+ return {
313
+ callId: call.id,
314
+ toolName: call.toolName,
315
+ ok: false,
316
+ output: null,
317
+ error: `Tool not permitted for agent ${session.agent.id}: ${call.toolName}`,
318
+ };
319
+ }
320
+ const approved = await this.approvals.approve({ session, call });
321
+ if (!approved) {
322
+ await this.bus.emit({ type: 'tool.denied', sessionId: session.id, call });
323
+ return {
324
+ callId: call.id,
325
+ toolName: call.toolName,
326
+ ok: false,
327
+ output: null,
328
+ error: `Tool call denied by approval policy: ${call.toolName}`,
329
+ };
330
+ }
331
+ const tool = this.tools.get(call.toolName);
332
+ if (!tool) {
333
+ return {
334
+ callId: call.id,
335
+ toolName: call.toolName,
336
+ ok: false,
337
+ output: null,
338
+ error: `Tool not found: ${call.toolName}`,
339
+ };
340
+ }
341
+ await this.bus.emit({ type: 'tool.called', sessionId: session.id, call });
342
+ const result = await this.executor.execute(call, tool, session);
343
+ await this.bus.emit({ type: 'tool.completed', sessionId: session.id, result });
344
+ return result;
345
+ }
346
+ }
347
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,40 @@
1
+ {
2
+ "name": "@stratusagent/core",
3
+ "version": "0.1.0",
4
+ "type": "module",
5
+ "main": "./dist/index.js",
6
+ "types": "./dist/index.d.ts",
7
+ "exports": {
8
+ ".": {
9
+ "types": "./dist/index.d.ts",
10
+ "import": "./dist/index.js"
11
+ }
12
+ },
13
+ "files": [
14
+ "dist"
15
+ ],
16
+ "devDependencies": {
17
+ "typescript": "^5.9.3"
18
+ },
19
+ "license": "MIT",
20
+ "repository": {
21
+ "type": "git",
22
+ "url": "git+https://github.com/stratuslabs/agent.git",
23
+ "directory": "packages/core"
24
+ },
25
+ "description": "Stratus Agent kernel: session, provider, tool, memory, and orchestration contracts with a multi-turn agent loop",
26
+ "keywords": [
27
+ "stratus",
28
+ "agent",
29
+ "ai",
30
+ "llm"
31
+ ],
32
+ "publishConfig": {
33
+ "access": "public"
34
+ },
35
+ "scripts": {
36
+ "build": "tsc -b",
37
+ "typecheck": "tsc --noEmit",
38
+ "test": "node --test --experimental-strip-types"
39
+ }
40
+ }