@stackbilt/aegis-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/package.json +96 -0
- package/schema.sql +586 -0
- package/src/adapters/voice/cloudflare-agent.ts +34 -0
- package/src/auth.ts +124 -0
- package/src/bluesky.ts +464 -0
- package/src/claude-tools/content.ts +188 -0
- package/src/claude-tools/email.ts +69 -0
- package/src/claude-tools/github.ts +440 -0
- package/src/claude-tools/goals.ts +116 -0
- package/src/claude-tools/index.ts +353 -0
- package/src/claude-tools/web.ts +59 -0
- package/src/claude.ts +406 -0
- package/src/codebeast.ts +200 -0
- package/src/composite.ts +715 -0
- package/src/content/column.ts +80 -0
- package/src/content/hero-image.ts +47 -0
- package/src/content/index.ts +27 -0
- package/src/content/journal.ts +91 -0
- package/src/content/roundtable.ts +163 -0
- package/src/core.ts +309 -0
- package/src/dashboard.ts +620 -0
- package/src/decision-docs.ts +284 -0
- package/src/dispatch.ts +13 -0
- package/src/edge-env.ts +58 -0
- package/src/email.ts +850 -0
- package/src/exports.ts +156 -0
- package/src/github-projects.ts +312 -0
- package/src/github.ts +670 -0
- package/src/groq.ts +247 -0
- package/src/health-page.ts +578 -0
- package/src/index.ts +89 -0
- package/src/kernel/argus-actions.ts +397 -0
- package/src/kernel/argus-correlation.ts +639 -0
- package/src/kernel/board.ts +91 -0
- package/src/kernel/briefing.ts +177 -0
- package/src/kernel/classify-memory-topic.ts +166 -0
- package/src/kernel/cognition.ts +377 -0
- package/src/kernel/court-cards.ts +163 -0
- package/src/kernel/dispatch.ts +587 -0
- package/src/kernel/domain.ts +50 -0
- package/src/kernel/dynamic-tools.ts +322 -0
- package/src/kernel/executor-port.ts +45 -0
- package/src/kernel/executors/claude.ts +73 -0
- package/src/kernel/executors/direct.ts +237 -0
- package/src/kernel/executors/groq.ts +18 -0
- package/src/kernel/executors/index.ts +87 -0
- package/src/kernel/executors/tarotscript.ts +104 -0
- package/src/kernel/executors/workers-ai.ts +54 -0
- package/src/kernel/insight-cache.ts +76 -0
- package/src/kernel/memory/agenda.ts +200 -0
- package/src/kernel/memory/blocks.ts +188 -0
- package/src/kernel/memory/consolidation.ts +194 -0
- package/src/kernel/memory/episodic.ts +241 -0
- package/src/kernel/memory/goals.ts +156 -0
- package/src/kernel/memory/graph.ts +290 -0
- package/src/kernel/memory/index.ts +11 -0
- package/src/kernel/memory/insights.ts +316 -0
- package/src/kernel/memory/procedural.ts +467 -0
- package/src/kernel/memory/pruning.ts +67 -0
- package/src/kernel/memory/recall.ts +367 -0
- package/src/kernel/memory/semantic.ts +315 -0
- package/src/kernel/memory/synthesis.ts +161 -0
- package/src/kernel/memory-adapter.ts +369 -0
- package/src/kernel/memory-guardrails.ts +76 -0
- package/src/kernel/port.ts +23 -0
- package/src/kernel/resilience.ts +322 -0
- package/src/kernel/router.ts +471 -0
- package/src/kernel/scheduled/agent-dispatch.ts +252 -0
- package/src/kernel/scheduled/argus-analytics.ts +247 -0
- package/src/kernel/scheduled/argus-heartbeat.ts +320 -0
- package/src/kernel/scheduled/argus-notify.ts +348 -0
- package/src/kernel/scheduled/board-sync.ts +110 -0
- package/src/kernel/scheduled/ci-watcher.ts +125 -0
- package/src/kernel/scheduled/cognitive-metrics.ts +377 -0
- package/src/kernel/scheduled/consolidation.ts +229 -0
- package/src/kernel/scheduled/content-drip.ts +47 -0
- package/src/kernel/scheduled/content.ts +6 -0
- package/src/kernel/scheduled/conversation-facts.ts +204 -0
- package/src/kernel/scheduled/cost-report.ts +84 -0
- package/src/kernel/scheduled/curiosity.ts +219 -0
- package/src/kernel/scheduled/dev-activity.ts +44 -0
- package/src/kernel/scheduled/digest.ts +317 -0
- package/src/kernel/scheduled/dreaming/agenda-triage.ts +115 -0
- package/src/kernel/scheduled/dreaming/facts.ts +239 -0
- package/src/kernel/scheduled/dreaming/index.ts +8 -0
- package/src/kernel/scheduled/dreaming/llm.ts +33 -0
- package/src/kernel/scheduled/dreaming/pattern-synthesis.ts +124 -0
- package/src/kernel/scheduled/dreaming/persona.ts +75 -0
- package/src/kernel/scheduled/dreaming/symbolic.ts +31 -0
- package/src/kernel/scheduled/dreaming/task-proposals.ts +80 -0
- package/src/kernel/scheduled/dreaming.ts +66 -0
- package/src/kernel/scheduled/entropy.ts +149 -0
- package/src/kernel/scheduled/escalation.ts +192 -0
- package/src/kernel/scheduled/feed-watcher.ts +206 -0
- package/src/kernel/scheduled/goals.ts +214 -0
- package/src/kernel/scheduled/governance.ts +41 -0
- package/src/kernel/scheduled/heartbeat.ts +220 -0
- package/src/kernel/scheduled/inbox-processor.ts +174 -0
- package/src/kernel/scheduled/index.ts +245 -0
- package/src/kernel/scheduled/issue-proposer.ts +478 -0
- package/src/kernel/scheduled/issue-watcher.ts +128 -0
- package/src/kernel/scheduled/pr-automerge.ts +213 -0
- package/src/kernel/scheduled/product-health.ts +107 -0
- package/src/kernel/scheduled/reflection.ts +373 -0
- package/src/kernel/scheduled/self-improvement.ts +114 -0
- package/src/kernel/scheduled/social-engage.ts +175 -0
- package/src/kernel/scheduled/task-audit.ts +60 -0
- package/src/kernel/symbolic.ts +156 -0
- package/src/kernel/types.ts +145 -0
- package/src/landing.ts +1190 -0
- package/src/lib/audit-chain/chain.ts +28 -0
- package/src/lib/audit-chain/types.ts +12 -0
- package/src/lib/observability/errors.ts +55 -0
- package/src/markdown.ts +164 -0
- package/src/mcp/handlers.ts +647 -0
- package/src/mcp/server.ts +184 -0
- package/src/mcp/tools.ts +316 -0
- package/src/mcp-client.ts +275 -0
- package/src/mcp-server.ts +2 -0
- package/src/operator/config.example.ts +60 -0
- package/src/operator/config.ts +60 -0
- package/src/operator/index.ts +46 -0
- package/src/operator/persona.example.ts +34 -0
- package/src/operator/persona.ts +34 -0
- package/src/operator/prompt-builder.ts +190 -0
- package/src/operator/types.ts +43 -0
- package/src/pulse.ts +1179 -0
- package/src/routes/bluesky.ts +116 -0
- package/src/routes/cc-tasks.ts +328 -0
- package/src/routes/codebeast.ts +1 -0
- package/src/routes/content.ts +194 -0
- package/src/routes/conversations.ts +25 -0
- package/src/routes/dynamic-tools.ts +111 -0
- package/src/routes/feedback.ts +192 -0
- package/src/routes/health.ts +147 -0
- package/src/routes/messages.ts +228 -0
- package/src/routes/observability.ts +82 -0
- package/src/routes/operator-logs.ts +42 -0
- package/src/routes/pages.ts +96 -0
- package/src/routes/sessions.ts +54 -0
- package/src/sanitize.ts +73 -0
- package/src/schema-enums.ts +155 -0
- package/src/search.ts +112 -0
- package/src/task-intelligence.ts +497 -0
- package/src/types.ts +194 -0
- package/src/ui.ts +5 -0
- package/src/version.ts +3 -0
- package/src/workers-ai-chat.ts +333 -0
package/src/core.ts
ADDED
|
@@ -0,0 +1,309 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @stackbilt/aegis-core — Extension interfaces and app factory.
|
|
3
|
+
*
|
|
4
|
+
* This module defines the contracts that consumers use to extend AEGIS
|
|
5
|
+
* with custom scheduled tasks, executors, routes, and MCP tools.
|
|
6
|
+
*
|
|
7
|
+
* Design principle: Extension Over Addition (ODD Pillar 2).
|
|
8
|
+
* Consumers extend the core — they don't fork or duplicate it.
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
import { Hono } from 'hono';
|
|
12
|
+
import type { Env } from './types.js';
|
|
13
|
+
import type { EdgeEnv } from './kernel/dispatch.js';
|
|
14
|
+
import type { KernelIntent, DispatchResult, Executor, CognitiveState } from './kernel/types.js';
|
|
15
|
+
import type { OperatorConfig, Product, SelfModel } from './operator/types.js';
|
|
16
|
+
import { setOperatorConfig } from './operator/index.js';
|
|
17
|
+
import { bearerAuth } from './auth.js';
|
|
18
|
+
import { runScheduledTasks } from './kernel/scheduled/index.js';
|
|
19
|
+
|
|
20
|
+
// Core route modules
|
|
21
|
+
import { health, setAppVersion } from './routes/health.js';
|
|
22
|
+
import { sessions } from './routes/sessions.js';
|
|
23
|
+
import { operatorLogs } from './routes/operator-logs.js';
|
|
24
|
+
import { feedback } from './routes/feedback.js';
|
|
25
|
+
import { conversations } from './routes/conversations.js';
|
|
26
|
+
import { observability } from './routes/observability.js';
|
|
27
|
+
import { pages } from './routes/pages.js';
|
|
28
|
+
import { ccTasks } from './routes/cc-tasks.js';
|
|
29
|
+
import { messages } from './routes/messages.js';
|
|
30
|
+
import { dynamicToolsRoutes } from './routes/dynamic-tools.js';
|
|
31
|
+
|
|
32
|
+
// ─── Scheduled Task Plugin ──────────────────────────────────
|
|
33
|
+
// Register custom scheduled tasks that run alongside core tasks.
|
|
34
|
+
|
|
35
|
+
export type TaskPhase = 'heartbeat' | 'cron';
|
|
36
|
+
|
|
37
|
+
export interface ScheduledTaskPlugin {
|
|
38
|
+
/** Unique task name (used in task_runs table and audit chain) */
|
|
39
|
+
name: string;
|
|
40
|
+
/** heartbeat = runs every hour, cron = time-gated */
|
|
41
|
+
phase: TaskPhase;
|
|
42
|
+
/** The task implementation */
|
|
43
|
+
run: (env: EdgeEnv) => Promise<void>;
|
|
44
|
+
/**
|
|
45
|
+
* Optional time gate for cron-phase tasks.
|
|
46
|
+
* If provided, the task only runs when `new Date().getUTCHours() % frequency === 0`.
|
|
47
|
+
*/
|
|
48
|
+
frequencyHours?: number;
|
|
49
|
+
/**
|
|
50
|
+
* Optional UTC hours when this task should run.
|
|
51
|
+
* More precise than frequencyHours — e.g., `[8, 20]` runs at 08:00 and 20:00 UTC.
|
|
52
|
+
*/
|
|
53
|
+
utcHours?: number[];
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
// ─── Executor Plugin ────────────────────────────────────────
|
|
57
|
+
// Register custom LLM executors beyond the built-in set.
|
|
58
|
+
|
|
59
|
+
export interface ExecutorResult {
|
|
60
|
+
text: string;
|
|
61
|
+
cost: number;
|
|
62
|
+
meta?: unknown;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
export interface ExecutorPlugin {
|
|
66
|
+
/** Executor name (must not collide with built-in executors) */
|
|
67
|
+
name: string;
|
|
68
|
+
/** Execute a dispatch intent and return the result */
|
|
69
|
+
execute: (intent: KernelIntent, env: EdgeEnv) => Promise<ExecutorResult>;
|
|
70
|
+
/** Optional streaming variant — emit deltas via onDelta callback */
|
|
71
|
+
stream?: (
|
|
72
|
+
intent: KernelIntent,
|
|
73
|
+
env: EdgeEnv,
|
|
74
|
+
onDelta: (text: string) => void,
|
|
75
|
+
) => Promise<ExecutorResult>;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
// ─── Route Plugin ───────────────────────────────────────────
|
|
79
|
+
// Mount additional Hono route modules onto the app.
|
|
80
|
+
|
|
81
|
+
export interface RoutePlugin {
|
|
82
|
+
/** Route prefix (e.g., '/' mounts at root, '/api/bluesky' mounts under that path) */
|
|
83
|
+
prefix: string;
|
|
84
|
+
/** The Hono router instance. Accepts any Env superset — internal routes may have wider bindings. */
|
|
85
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
86
|
+
router: Hono<any>;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
// ─── MCP Tool Plugin ────────────────────────────────────────
|
|
90
|
+
// Register additional MCP tools beyond the core set.
|
|
91
|
+
|
|
92
|
+
export interface McpToolDefinition {
|
|
93
|
+
name: string;
|
|
94
|
+
description: string;
|
|
95
|
+
inputSchema: Record<string, unknown>;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
export interface McpToolPlugin {
|
|
99
|
+
/** Tool definition (name, description, input schema) */
|
|
100
|
+
definition: McpToolDefinition;
|
|
101
|
+
/** Tool handler — receives parsed arguments, returns MCP tool result */
|
|
102
|
+
handler: (args: Record<string, unknown>, env: EdgeEnv) => Promise<{
|
|
103
|
+
content: Array<{ type: 'text'; text: string }>;
|
|
104
|
+
isError?: boolean;
|
|
105
|
+
}>;
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
// ─── App Configuration ──────────────────────────────────────
|
|
109
|
+
|
|
110
|
+
export interface AegisAppConfig {
|
|
111
|
+
/** Override the version reported by /health (defaults to core VERSION) */
|
|
112
|
+
version?: string;
|
|
113
|
+
|
|
114
|
+
/** Operator identity and persona configuration */
|
|
115
|
+
operator: OperatorConfig;
|
|
116
|
+
|
|
117
|
+
/** Additional scheduled tasks to register alongside core tasks */
|
|
118
|
+
scheduledTasks?: ScheduledTaskPlugin[];
|
|
119
|
+
|
|
120
|
+
/** Additional executors to register */
|
|
121
|
+
executors?: ExecutorPlugin[];
|
|
122
|
+
|
|
123
|
+
/** Additional route modules to mount (after core routes) */
|
|
124
|
+
routes?: RoutePlugin[];
|
|
125
|
+
|
|
126
|
+
/** Additional MCP tools to register */
|
|
127
|
+
mcpTools?: McpToolPlugin[];
|
|
128
|
+
|
|
129
|
+
/**
|
|
130
|
+
* Paths that bypass bearer auth (in addition to core public paths like /health).
|
|
131
|
+
* Supports exact matches and prefix matches ending with *.
|
|
132
|
+
*/
|
|
133
|
+
publicPaths?: string[];
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
// ─── App Factory ────────────────────────────────────────────
|
|
137
|
+
|
|
138
|
+
export interface AegisApp {
|
|
139
|
+
/**
|
|
140
|
+
* The composed Hono application (pass to OAuthProvider or export directly).
|
|
141
|
+
* Typed as `any` bindings to allow consumers with extended Env types.
|
|
142
|
+
*/
|
|
143
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
144
|
+
app: Hono<any>;
|
|
145
|
+
|
|
146
|
+
/** Run core + extension scheduled tasks. Wire to the Worker's scheduled handler. */
|
|
147
|
+
// Accepts any EdgeEnv superset — consumers may add service binding fields
|
|
148
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
149
|
+
runScheduled: (env: any) => Promise<void>;
|
|
150
|
+
|
|
151
|
+
/** Core route instances (for consumers who want manual composition instead of the factory) */
|
|
152
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
153
|
+
coreRoutes: Record<string, Hono<any>>;
|
|
154
|
+
|
|
155
|
+
/** Registered executor plugins (for dispatch integration) */
|
|
156
|
+
executorPlugins: Map<string, ExecutorPlugin>;
|
|
157
|
+
|
|
158
|
+
/** Registered MCP tool plugins (for MCP server integration) */
|
|
159
|
+
mcpToolPlugins: McpToolPlugin[];
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
/**
|
|
163
|
+
* Create a configured AEGIS application.
|
|
164
|
+
*
|
|
165
|
+
* Composes core routes, auth, scheduled tasks, and extensions into a
|
|
166
|
+
* deployable Worker. This is the primary entry point for consumers.
|
|
167
|
+
*
|
|
168
|
+
* ```ts
|
|
169
|
+
* import { createAegisApp } from '@stackbilt/aegis-core';
|
|
170
|
+
* import { buildEdgeEnv } from '@stackbilt/aegis-core/edge-env';
|
|
171
|
+
*
|
|
172
|
+
* const aegis = createAegisApp({
|
|
173
|
+
* operator: myOperatorConfig,
|
|
174
|
+
* scheduledTasks: [argusHeartbeat, contentDrip],
|
|
175
|
+
* routes: [
|
|
176
|
+
* { prefix: '/', router: blueskyRoutes },
|
|
177
|
+
* { prefix: '/', router: telegramRoutes },
|
|
178
|
+
* ],
|
|
179
|
+
* });
|
|
180
|
+
*
|
|
181
|
+
* export default {
|
|
182
|
+
* fetch: aegis.app.fetch,
|
|
183
|
+
* scheduled: (_event, env, ctx) => {
|
|
184
|
+
* ctx.waitUntil(aegis.runScheduled(buildEdgeEnv(env, ctx)));
|
|
185
|
+
* },
|
|
186
|
+
* };
|
|
187
|
+
* ```
|
|
188
|
+
*/
|
|
189
|
+
export function createAegisApp(config: AegisAppConfig): AegisApp {
|
|
190
|
+
// ── Operator config override ──
|
|
191
|
+
// Must happen before anything else — core modules (email, dispatch, MCP tools)
|
|
192
|
+
// import operatorConfig at the module level, so this sets the live binding.
|
|
193
|
+
setOperatorConfig(config.operator);
|
|
194
|
+
|
|
195
|
+
// ── Version override ──
|
|
196
|
+
if (config.version) setAppVersion(config.version);
|
|
197
|
+
|
|
198
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
199
|
+
const app = new Hono<any>();
|
|
200
|
+
|
|
201
|
+
// ── Auth middleware ──
|
|
202
|
+
app.use('*', bearerAuth);
|
|
203
|
+
|
|
204
|
+
// ── Core routes ──
|
|
205
|
+
app.route('/', health);
|
|
206
|
+
app.route('/', sessions);
|
|
207
|
+
app.route('/', operatorLogs);
|
|
208
|
+
app.route('/', feedback);
|
|
209
|
+
app.route('/', conversations);
|
|
210
|
+
app.route('/', observability);
|
|
211
|
+
app.route('/', pages);
|
|
212
|
+
app.route('/', ccTasks);
|
|
213
|
+
app.route('/', messages);
|
|
214
|
+
app.route('/', dynamicToolsRoutes);
|
|
215
|
+
|
|
216
|
+
// ── Extension routes ──
|
|
217
|
+
for (const route of config.routes ?? []) {
|
|
218
|
+
app.route(route.prefix, route.router);
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
// ── Executor registry ──
|
|
222
|
+
const executorPlugins = new Map<string, ExecutorPlugin>();
|
|
223
|
+
for (const plugin of config.executors ?? []) {
|
|
224
|
+
executorPlugins.set(plugin.name, plugin);
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
// ── MCP tool registry ──
|
|
228
|
+
const mcpToolPlugins = config.mcpTools ?? [];
|
|
229
|
+
|
|
230
|
+
// ── Scheduled task composition ──
|
|
231
|
+
const extensionTasks = config.scheduledTasks ?? [];
|
|
232
|
+
|
|
233
|
+
async function runScheduled(env: EdgeEnv): Promise<void> {
|
|
234
|
+
// Core scheduled tasks (heartbeat + cron phases)
|
|
235
|
+
await runScheduledTasks(env);
|
|
236
|
+
|
|
237
|
+
// Extension scheduled tasks
|
|
238
|
+
const hour = new Date().getUTCHours();
|
|
239
|
+
for (const task of extensionTasks) {
|
|
240
|
+
if (task.utcHours && !task.utcHours.includes(hour)) continue;
|
|
241
|
+
if (task.frequencyHours && hour % task.frequencyHours !== 0) continue;
|
|
242
|
+
|
|
243
|
+
const start = Date.now();
|
|
244
|
+
try {
|
|
245
|
+
await task.run(env);
|
|
246
|
+
await env.db.prepare(
|
|
247
|
+
'INSERT INTO task_runs (task_name, status, duration_ms) VALUES (?, ?, ?)',
|
|
248
|
+
).bind(task.name, 'ok', Date.now() - start).run().catch(() => {});
|
|
249
|
+
} catch (err) {
|
|
250
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
251
|
+
console.error(`[ext:${task.phase}] ${task.name} failed:`, msg);
|
|
252
|
+
await env.db.prepare(
|
|
253
|
+
'INSERT INTO task_runs (task_name, status, duration_ms, error_message) VALUES (?, ?, ?, ?)',
|
|
254
|
+
).bind(task.name, 'error', Date.now() - start, msg).run().catch(() => {});
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
|
|
259
|
+
const coreRoutes = {
|
|
260
|
+
health,
|
|
261
|
+
sessions,
|
|
262
|
+
operatorLogs,
|
|
263
|
+
feedback,
|
|
264
|
+
conversations,
|
|
265
|
+
observability,
|
|
266
|
+
pages,
|
|
267
|
+
ccTasks,
|
|
268
|
+
messages,
|
|
269
|
+
dynamicTools: dynamicToolsRoutes,
|
|
270
|
+
};
|
|
271
|
+
|
|
272
|
+
return { app, runScheduled, coreRoutes, executorPlugins, mcpToolPlugins };
|
|
273
|
+
}
|
|
274
|
+
|
|
275
|
+
// ─── Re-export core types ───────────────────────────────────
|
|
276
|
+
|
|
277
|
+
export type {
|
|
278
|
+
Env,
|
|
279
|
+
MemoryServiceBinding,
|
|
280
|
+
MemoryStoreRequest,
|
|
281
|
+
MemoryStoreResult,
|
|
282
|
+
MemoryRecallQuery,
|
|
283
|
+
MemoryFragmentResult,
|
|
284
|
+
MemoryForgetFilter,
|
|
285
|
+
MemoryStatsResult,
|
|
286
|
+
MessageMetadata,
|
|
287
|
+
} from './types.js';
|
|
288
|
+
|
|
289
|
+
export type { EdgeEnv } from './kernel/dispatch.js';
|
|
290
|
+
|
|
291
|
+
export type {
|
|
292
|
+
KernelIntent,
|
|
293
|
+
DispatchResult,
|
|
294
|
+
Executor,
|
|
295
|
+
ExecutionPlan,
|
|
296
|
+
CognitiveState,
|
|
297
|
+
Channel,
|
|
298
|
+
EpisodicEntry,
|
|
299
|
+
ProceduralEntry,
|
|
300
|
+
ProceduralStatus,
|
|
301
|
+
MemoryEntry,
|
|
302
|
+
Refinement,
|
|
303
|
+
} from './kernel/types.js';
|
|
304
|
+
|
|
305
|
+
export type {
|
|
306
|
+
OperatorConfig,
|
|
307
|
+
Product,
|
|
308
|
+
SelfModel,
|
|
309
|
+
} from './operator/types.js';
|