@gencode/agents 0.0.1
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/dist/bootstrap/bootstrap-layout.d.ts +23 -0
- package/dist/bootstrap/bootstrap-layout.d.ts.map +1 -0
- package/dist/bootstrap/bootstrap-layout.js +151 -0
- package/dist/bootstrap/bootstrap-layout.js.map +1 -0
- package/dist/bootstrap/bootstrap.d.ts +36 -0
- package/dist/bootstrap/bootstrap.d.ts.map +1 -0
- package/dist/bootstrap/bootstrap.js +136 -0
- package/dist/bootstrap/bootstrap.js.map +1 -0
- package/dist/bootstrap/templates/AGENTS_MD.d.ts +2 -0
- package/dist/bootstrap/templates/AGENTS_MD.d.ts.map +1 -0
- package/dist/bootstrap/templates/AGENTS_MD.js +223 -0
- package/dist/bootstrap/templates/AGENTS_MD.js.map +1 -0
- package/dist/bootstrap/templates/BOOTSTRAP_MD.d.ts +2 -0
- package/dist/bootstrap/templates/BOOTSTRAP_MD.d.ts.map +1 -0
- package/dist/bootstrap/templates/BOOTSTRAP_MD.js +66 -0
- package/dist/bootstrap/templates/BOOTSTRAP_MD.js.map +1 -0
- package/dist/bootstrap/templates/HEARTBEAT_MD.d.ts +2 -0
- package/dist/bootstrap/templates/HEARTBEAT_MD.d.ts.map +1 -0
- package/dist/bootstrap/templates/HEARTBEAT_MD.js +16 -0
- package/dist/bootstrap/templates/HEARTBEAT_MD.js.map +1 -0
- package/dist/bootstrap/templates/IDENTITY_MD.d.ts +2 -0
- package/dist/bootstrap/templates/IDENTITY_MD.d.ts.map +1 -0
- package/dist/bootstrap/templates/IDENTITY_MD.js +31 -0
- package/dist/bootstrap/templates/IDENTITY_MD.js.map +1 -0
- package/dist/bootstrap/templates/SOUL_MD.d.ts +2 -0
- package/dist/bootstrap/templates/SOUL_MD.d.ts.map +1 -0
- package/dist/bootstrap/templates/SOUL_MD.js +47 -0
- package/dist/bootstrap/templates/SOUL_MD.js.map +1 -0
- package/dist/bootstrap/templates/TOOLS_MD.d.ts +2 -0
- package/dist/bootstrap/templates/TOOLS_MD.d.ts.map +1 -0
- package/dist/bootstrap/templates/TOOLS_MD.js +51 -0
- package/dist/bootstrap/templates/TOOLS_MD.js.map +1 -0
- package/dist/bootstrap/templates/USER_MD.d.ts +2 -0
- package/dist/bootstrap/templates/USER_MD.d.ts.map +1 -0
- package/dist/bootstrap/templates/USER_MD.js +27 -0
- package/dist/bootstrap/templates/USER_MD.js.map +1 -0
- package/dist/bootstrap/templates/index.d.ts +3 -0
- package/dist/bootstrap/templates/index.d.ts.map +1 -0
- package/dist/bootstrap/templates/index.js +26 -0
- package/dist/bootstrap/templates/index.js.map +1 -0
- package/dist/commands/compact.d.ts +28 -0
- package/dist/commands/compact.d.ts.map +1 -0
- package/dist/commands/compact.js +57 -0
- package/dist/commands/compact.js.map +1 -0
- package/dist/commands/help.d.ts +3 -0
- package/dist/commands/help.d.ts.map +1 -0
- package/dist/commands/help.js +50 -0
- package/dist/commands/help.js.map +1 -0
- package/dist/commands/index.d.ts +6 -0
- package/dist/commands/index.d.ts.map +1 -0
- package/dist/commands/index.js +32 -0
- package/dist/commands/index.js.map +1 -0
- package/dist/commands/new.d.ts +3 -0
- package/dist/commands/new.d.ts.map +1 -0
- package/dist/commands/new.js +4 -0
- package/dist/commands/new.js.map +1 -0
- package/dist/commands/registry.d.ts +11 -0
- package/dist/commands/registry.d.ts.map +1 -0
- package/dist/commands/registry.js +122 -0
- package/dist/commands/registry.js.map +1 -0
- package/dist/commands/reset.d.ts +3 -0
- package/dist/commands/reset.d.ts.map +1 -0
- package/dist/commands/reset.js +4 -0
- package/dist/commands/reset.js.map +1 -0
- package/dist/commands/skill.d.ts +7 -0
- package/dist/commands/skill.d.ts.map +1 -0
- package/dist/commands/skill.js +23 -0
- package/dist/commands/skill.js.map +1 -0
- package/dist/commands/types.d.ts +57 -0
- package/dist/commands/types.d.ts.map +1 -0
- package/dist/commands/types.js +2 -0
- package/dist/commands/types.js.map +1 -0
- package/dist/config/agents-config.d.ts +85 -0
- package/dist/config/agents-config.d.ts.map +1 -0
- package/dist/config/agents-config.js +257 -0
- package/dist/config/agents-config.js.map +1 -0
- package/dist/config/index.d.ts +9 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +9 -0
- package/dist/config/index.js.map +1 -0
- package/dist/config/types.d.ts +87 -0
- package/dist/config/types.d.ts.map +1 -0
- package/dist/config/types.js +6 -0
- package/dist/config/types.js.map +1 -0
- package/dist/history/compaction.d.ts +42 -0
- package/dist/history/compaction.d.ts.map +1 -0
- package/dist/history/compaction.js +135 -0
- package/dist/history/compaction.js.map +1 -0
- package/dist/history/index.d.ts +57 -0
- package/dist/history/index.d.ts.map +1 -0
- package/dist/history/index.js +145 -0
- package/dist/history/index.js.map +1 -0
- package/dist/history/limit.d.ts +13 -0
- package/dist/history/limit.d.ts.map +1 -0
- package/dist/history/limit.js +32 -0
- package/dist/history/limit.js.map +1 -0
- package/dist/history/repair.d.ts +13 -0
- package/dist/history/repair.d.ts.map +1 -0
- package/dist/history/repair.js +25 -0
- package/dist/history/repair.js.map +1 -0
- package/dist/history/token-estimate.d.ts +22 -0
- package/dist/history/token-estimate.d.ts.map +1 -0
- package/dist/history/token-estimate.js +38 -0
- package/dist/history/token-estimate.js.map +1 -0
- package/dist/index.d.ts +41 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +35 -0
- package/dist/index.js.map +1 -0
- package/dist/llm/client.d.ts +53 -0
- package/dist/llm/client.d.ts.map +1 -0
- package/dist/llm/client.js +214 -0
- package/dist/llm/client.js.map +1 -0
- package/dist/llm/openai-completions-compat.d.ts +23 -0
- package/dist/llm/openai-completions-compat.d.ts.map +1 -0
- package/dist/llm/openai-completions-compat.js +602 -0
- package/dist/llm/openai-completions-compat.js.map +1 -0
- package/dist/llm/openai-stream-error.d.ts +11 -0
- package/dist/llm/openai-stream-error.d.ts.map +1 -0
- package/dist/llm/openai-stream-error.js +77 -0
- package/dist/llm/openai-stream-error.js.map +1 -0
- package/dist/loop-detection/session-state.d.ts +5 -0
- package/dist/loop-detection/session-state.d.ts.map +1 -0
- package/dist/loop-detection/session-state.js +16 -0
- package/dist/loop-detection/session-state.js.map +1 -0
- package/dist/loop-detection/tool-loop-detection.d.ts +122 -0
- package/dist/loop-detection/tool-loop-detection.d.ts.map +1 -0
- package/dist/loop-detection/tool-loop-detection.js +516 -0
- package/dist/loop-detection/tool-loop-detection.js.map +1 -0
- package/dist/memory/builtin-provider.d.ts +5 -0
- package/dist/memory/builtin-provider.d.ts.map +1 -0
- package/dist/memory/builtin-provider.js +42 -0
- package/dist/memory/builtin-provider.js.map +1 -0
- package/dist/memory/config.d.ts +50 -0
- package/dist/memory/config.d.ts.map +1 -0
- package/dist/memory/config.js +46 -0
- package/dist/memory/config.js.map +1 -0
- package/dist/memory/embedding-registry.d.ts +37 -0
- package/dist/memory/embedding-registry.d.ts.map +1 -0
- package/dist/memory/embedding-registry.js +56 -0
- package/dist/memory/embedding-registry.js.map +1 -0
- package/dist/memory/embeddings.d.ts +11 -0
- package/dist/memory/embeddings.d.ts.map +1 -0
- package/dist/memory/embeddings.js +40 -0
- package/dist/memory/embeddings.js.map +1 -0
- package/dist/memory/fs-utils.d.ts +12 -0
- package/dist/memory/fs-utils.d.ts.map +1 -0
- package/dist/memory/fs-utils.js +24 -0
- package/dist/memory/fs-utils.js.map +1 -0
- package/dist/memory/hybrid.d.ts +43 -0
- package/dist/memory/hybrid.d.ts.map +1 -0
- package/dist/memory/hybrid.js +80 -0
- package/dist/memory/hybrid.js.map +1 -0
- package/dist/memory/internal.d.ts +28 -0
- package/dist/memory/internal.d.ts.map +1 -0
- package/dist/memory/internal.js +270 -0
- package/dist/memory/internal.js.map +1 -0
- package/dist/memory/manager-search.d.ts +61 -0
- package/dist/memory/manager-search.d.ts.map +1 -0
- package/dist/memory/manager-search.js +106 -0
- package/dist/memory/manager-search.js.map +1 -0
- package/dist/memory/manager.d.ts +126 -0
- package/dist/memory/manager.d.ts.map +1 -0
- package/dist/memory/manager.js +1006 -0
- package/dist/memory/manager.js.map +1 -0
- package/dist/memory/memory-schema.d.ts +11 -0
- package/dist/memory/memory-schema.d.ts.map +1 -0
- package/dist/memory/memory-schema.js +78 -0
- package/dist/memory/memory-schema.js.map +1 -0
- package/dist/memory/memory.d.ts +46 -0
- package/dist/memory/memory.d.ts.map +1 -0
- package/dist/memory/memory.js +127 -0
- package/dist/memory/memory.js.map +1 -0
- package/dist/memory/mmr.d.ts +22 -0
- package/dist/memory/mmr.d.ts.map +1 -0
- package/dist/memory/mmr.js +112 -0
- package/dist/memory/mmr.js.map +1 -0
- package/dist/memory/provider-registry.d.ts +29 -0
- package/dist/memory/provider-registry.d.ts.map +1 -0
- package/dist/memory/provider-registry.js +58 -0
- package/dist/memory/provider-registry.js.map +1 -0
- package/dist/memory/provider.d.ts +40 -0
- package/dist/memory/provider.d.ts.map +1 -0
- package/dist/memory/provider.js +2 -0
- package/dist/memory/provider.js.map +1 -0
- package/dist/memory/session-files.d.ts +13 -0
- package/dist/memory/session-files.d.ts.map +1 -0
- package/dist/memory/session-files.js +116 -0
- package/dist/memory/session-files.js.map +1 -0
- package/dist/memory/sqlite-vec.d.ts +10 -0
- package/dist/memory/sqlite-vec.d.ts.map +1 -0
- package/dist/memory/sqlite-vec.js +20 -0
- package/dist/memory/sqlite-vec.js.map +1 -0
- package/dist/memory/sqlite.d.ts +2 -0
- package/dist/memory/sqlite.d.ts.map +1 -0
- package/dist/memory/sqlite.js +12 -0
- package/dist/memory/sqlite.js.map +1 -0
- package/dist/memory/temporal-decay.d.ts +26 -0
- package/dist/memory/temporal-decay.d.ts.map +1 -0
- package/dist/memory/temporal-decay.js +119 -0
- package/dist/memory/temporal-decay.js.map +1 -0
- package/dist/memory/watch-bridge.d.ts +20 -0
- package/dist/memory/watch-bridge.d.ts.map +1 -0
- package/dist/memory/watch-bridge.js +128 -0
- package/dist/memory/watch-bridge.js.map +1 -0
- package/dist/plugins/boundary-file-read.d.ts +13 -0
- package/dist/plugins/boundary-file-read.d.ts.map +1 -0
- package/dist/plugins/boundary-file-read.js +31 -0
- package/dist/plugins/boundary-file-read.js.map +1 -0
- package/dist/plugins/config-state.d.ts +35 -0
- package/dist/plugins/config-state.d.ts.map +1 -0
- package/dist/plugins/config-state.js +97 -0
- package/dist/plugins/config-state.js.map +1 -0
- package/dist/plugins/discovery.d.ts +21 -0
- package/dist/plugins/discovery.d.ts.map +1 -0
- package/dist/plugins/discovery.js +425 -0
- package/dist/plugins/discovery.js.map +1 -0
- package/dist/plugins/hooks.d.ts +112 -0
- package/dist/plugins/hooks.d.ts.map +1 -0
- package/dist/plugins/hooks.js +19 -0
- package/dist/plugins/hooks.js.map +1 -0
- package/dist/plugins/index.d.ts +20 -0
- package/dist/plugins/index.d.ts.map +1 -0
- package/dist/plugins/index.js +11 -0
- package/dist/plugins/index.js.map +1 -0
- package/dist/plugins/loader.d.ts +60 -0
- package/dist/plugins/loader.d.ts.map +1 -0
- package/dist/plugins/loader.js +224 -0
- package/dist/plugins/loader.js.map +1 -0
- package/dist/plugins/manager.d.ts +20 -0
- package/dist/plugins/manager.d.ts.map +1 -0
- package/dist/plugins/manager.js +33 -0
- package/dist/plugins/manager.js.map +1 -0
- package/dist/plugins/manifest-registry.d.ts +15 -0
- package/dist/plugins/manifest-registry.d.ts.map +1 -0
- package/dist/plugins/manifest-registry.js +37 -0
- package/dist/plugins/manifest-registry.js.map +1 -0
- package/dist/plugins/manifest.d.ts +6 -0
- package/dist/plugins/manifest.d.ts.map +1 -0
- package/dist/plugins/manifest.js +80 -0
- package/dist/plugins/manifest.js.map +1 -0
- package/dist/plugins/path-safety.d.ts +6 -0
- package/dist/plugins/path-safety.d.ts.map +1 -0
- package/dist/plugins/path-safety.js +32 -0
- package/dist/plugins/path-safety.js.map +1 -0
- package/dist/plugins/runtime-context.d.ts +12 -0
- package/dist/plugins/runtime-context.d.ts.map +1 -0
- package/dist/plugins/runtime-context.js +2 -0
- package/dist/plugins/runtime-context.js.map +1 -0
- package/dist/plugins/runtime.d.ts +12 -0
- package/dist/plugins/runtime.d.ts.map +1 -0
- package/dist/plugins/runtime.js +13 -0
- package/dist/plugins/runtime.js.map +1 -0
- package/dist/plugins/schema-validator.d.ts +17 -0
- package/dist/plugins/schema-validator.d.ts.map +1 -0
- package/dist/plugins/schema-validator.js +26 -0
- package/dist/plugins/schema-validator.js.map +1 -0
- package/dist/plugins/tool-hooks.d.ts +4 -0
- package/dist/plugins/tool-hooks.d.ts.map +1 -0
- package/dist/plugins/tool-hooks.js +60 -0
- package/dist/plugins/tool-hooks.js.map +1 -0
- package/dist/plugins/tools.d.ts +20 -0
- package/dist/plugins/tools.d.ts.map +1 -0
- package/dist/plugins/tools.js +42 -0
- package/dist/plugins/tools.js.map +1 -0
- package/dist/plugins/types.d.ts +61 -0
- package/dist/plugins/types.d.ts.map +1 -0
- package/dist/plugins/types.js +2 -0
- package/dist/plugins/types.js.map +1 -0
- package/dist/plugins/utils.d.ts +4 -0
- package/dist/plugins/utils.d.ts.map +1 -0
- package/dist/plugins/utils.js +22 -0
- package/dist/plugins/utils.js.map +1 -0
- package/dist/runner/runner.d.ts +14 -0
- package/dist/runner/runner.d.ts.map +1 -0
- package/dist/runner/runner.js +893 -0
- package/dist/runner/runner.js.map +1 -0
- package/dist/session/session.d.ts +45 -0
- package/dist/session/session.d.ts.map +1 -0
- package/dist/session/session.js +167 -0
- package/dist/session/session.js.map +1 -0
- package/dist/skills/skills.d.ts +23 -0
- package/dist/skills/skills.d.ts.map +1 -0
- package/dist/skills/skills.js +109 -0
- package/dist/skills/skills.js.map +1 -0
- package/dist/subagent/registry-persist.d.ts +31 -0
- package/dist/subagent/registry-persist.d.ts.map +1 -0
- package/dist/subagent/registry-persist.js +115 -0
- package/dist/subagent/registry-persist.js.map +1 -0
- package/dist/subagent/registry.d.ts +52 -0
- package/dist/subagent/registry.d.ts.map +1 -0
- package/dist/subagent/registry.js +122 -0
- package/dist/subagent/registry.js.map +1 -0
- package/dist/subagent/types.d.ts +20 -0
- package/dist/subagent/types.d.ts.map +1 -0
- package/dist/subagent/types.js +2 -0
- package/dist/subagent/types.js.map +1 -0
- package/dist/system-prompt/builder.d.ts +50 -0
- package/dist/system-prompt/builder.d.ts.map +1 -0
- package/dist/system-prompt/builder.js +335 -0
- package/dist/system-prompt/builder.js.map +1 -0
- package/dist/tools/apply-patch.d.ts +15 -0
- package/dist/tools/apply-patch.d.ts.map +1 -0
- package/dist/tools/apply-patch.js +425 -0
- package/dist/tools/apply-patch.js.map +1 -0
- package/dist/tools/bash.d.ts +11 -0
- package/dist/tools/bash.d.ts.map +1 -0
- package/dist/tools/bash.js +13 -0
- package/dist/tools/bash.js.map +1 -0
- package/dist/tools/cron.d.ts +23 -0
- package/dist/tools/cron.d.ts.map +1 -0
- package/dist/tools/cron.js +37 -0
- package/dist/tools/cron.js.map +1 -0
- package/dist/tools/exec.d.ts +18 -0
- package/dist/tools/exec.d.ts.map +1 -0
- package/dist/tools/exec.js +125 -0
- package/dist/tools/exec.js.map +1 -0
- package/dist/tools/files.d.ts +37 -0
- package/dist/tools/files.d.ts.map +1 -0
- package/dist/tools/files.js +191 -0
- package/dist/tools/files.js.map +1 -0
- package/dist/tools/image.d.ts +14 -0
- package/dist/tools/image.d.ts.map +1 -0
- package/dist/tools/image.js +26 -0
- package/dist/tools/image.js.map +1 -0
- package/dist/tools/index.d.ts +35 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +53 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/memory.d.ts +41 -0
- package/dist/tools/memory.d.ts.map +1 -0
- package/dist/tools/memory.js +114 -0
- package/dist/tools/memory.js.map +1 -0
- package/dist/tools/process-registry.d.ts +47 -0
- package/dist/tools/process-registry.d.ts.map +1 -0
- package/dist/tools/process-registry.js +252 -0
- package/dist/tools/process-registry.js.map +1 -0
- package/dist/tools/process.d.ts +17 -0
- package/dist/tools/process.d.ts.map +1 -0
- package/dist/tools/process.js +114 -0
- package/dist/tools/process.js.map +1 -0
- package/dist/tools/subagent-spawn.d.ts +44 -0
- package/dist/tools/subagent-spawn.d.ts.map +1 -0
- package/dist/tools/subagent-spawn.js +100 -0
- package/dist/tools/subagent-spawn.js.map +1 -0
- package/dist/tools/subagents.d.ts +30 -0
- package/dist/tools/subagents.d.ts.map +1 -0
- package/dist/tools/subagents.js +101 -0
- package/dist/tools/subagents.js.map +1 -0
- package/dist/types.d.ts +241 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +6 -0
- package/dist/types.js.map +1 -0
- package/package.json +46 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/runner/runner.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import type { TranscriptEntry, Channel } from "../types.js";
|
|
2
|
+
import type { MemoryChangedHandler } from "../memory/provider.js";
|
|
3
|
+
export type SessionMetadata = {
|
|
4
|
+
id: string;
|
|
5
|
+
title: string;
|
|
6
|
+
channel: Channel;
|
|
7
|
+
createdAt: string;
|
|
8
|
+
updatedAt: string;
|
|
9
|
+
};
|
|
10
|
+
export type SessionSummary = {
|
|
11
|
+
id: string;
|
|
12
|
+
title: string;
|
|
13
|
+
channel: Channel;
|
|
14
|
+
createdAt: string;
|
|
15
|
+
updatedAt: string;
|
|
16
|
+
};
|
|
17
|
+
/** Resolves the sessions directory path within a data directory */
|
|
18
|
+
export declare function sessionsDir(dataDir: string): string;
|
|
19
|
+
/** Resolves the directory for a specific session */
|
|
20
|
+
export declare function sessionDir(dataDir: string, sessionId: string): string;
|
|
21
|
+
/** Resolves the transcript file path for a session */
|
|
22
|
+
export declare function transcriptPath(dataDir: string, sessionId: string): string;
|
|
23
|
+
/** Resolves the metadata file path for a session */
|
|
24
|
+
export declare function metadataPath(dataDir: string, sessionId: string): string;
|
|
25
|
+
/** Creates a new session with a generated ID */
|
|
26
|
+
export declare function createSession(dataDir: string, channel: Channel): Promise<string>;
|
|
27
|
+
/** Ensures a session directory exists (for resuming an existing session) */
|
|
28
|
+
export declare function ensureSession(dataDir: string, sessionId: string): Promise<void>;
|
|
29
|
+
/** Loads all transcript entries from a session */
|
|
30
|
+
export declare function loadTranscript(dataDir: string, sessionId: string): Promise<TranscriptEntry[]>;
|
|
31
|
+
/** Appends a single entry to the transcript file */
|
|
32
|
+
export declare function appendTranscriptEntry(dataDir: string, sessionId: string, entry: TranscriptEntry, options?: {
|
|
33
|
+
providerId?: string;
|
|
34
|
+
pluginId?: string;
|
|
35
|
+
onMemoryChanged?: MemoryChangedHandler;
|
|
36
|
+
}): Promise<void>;
|
|
37
|
+
/** Lists all session IDs within a data directory */
|
|
38
|
+
export declare function listSessions(dataDir: string): Promise<string[]>;
|
|
39
|
+
/** Saves session metadata to disk */
|
|
40
|
+
export declare function saveSessionMetadata(dataDir: string, metadata: SessionMetadata): Promise<void>;
|
|
41
|
+
/** Loads session metadata from disk; returns null if not found */
|
|
42
|
+
export declare function loadSessionMetadata(dataDir: string, sessionId: string): Promise<SessionMetadata | null>;
|
|
43
|
+
/** Lists all sessions with their metadata summaries, optionally filtered by channel */
|
|
44
|
+
export declare function listSessionSummaries(dataDir: string, channel?: Channel): Promise<SessionSummary[]>;
|
|
45
|
+
//# sourceMappingURL=session.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/session/session.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAC5D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAElE,MAAM,MAAM,eAAe,GAAG;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,mEAAmE;AACnE,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED,oDAAoD;AACpD,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAErE;AAED,sDAAsD;AACtD,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAEzE;AAED,oDAAoD;AACpD,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAEvE;AAED,gDAAgD;AAChD,wBAAsB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAQtF;AAED,4EAA4E;AAC5E,wBAAsB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAGrF;AAED,kDAAkD;AAClD,wBAAsB,cAAc,CAClC,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,eAAe,EAAE,CAAC,CAwB5B;AAED,oDAAoD;AACpD,wBAAsB,qBAAqB,CACzC,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,eAAe,EACtB,OAAO,CAAC,EAAE;IAAE,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,eAAe,CAAC,EAAE,oBAAoB,CAAA;CAAE,GAC3F,OAAO,CAAC,IAAI,CAAC,CAkCf;AAED,oDAAoD;AACpD,wBAAsB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAerE;AAED,qCAAqC;AACrC,wBAAsB,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAInG;AAED,kEAAkE;AAClE,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CA4BjC;AAED,uFAAuF;AACvF,wBAAsB,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAexG"}
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
import fs from "node:fs/promises";
|
|
2
|
+
import path from "node:path";
|
|
3
|
+
import { randomUUID } from "node:crypto";
|
|
4
|
+
/** Resolves the sessions directory path within a data directory */
|
|
5
|
+
export function sessionsDir(dataDir) {
|
|
6
|
+
return path.join(dataDir, ".aimax", "sessions");
|
|
7
|
+
}
|
|
8
|
+
/** Resolves the directory for a specific session */
|
|
9
|
+
export function sessionDir(dataDir, sessionId) {
|
|
10
|
+
return path.join(sessionsDir(dataDir), sessionId);
|
|
11
|
+
}
|
|
12
|
+
/** Resolves the transcript file path for a session */
|
|
13
|
+
export function transcriptPath(dataDir, sessionId) {
|
|
14
|
+
return path.join(sessionDir(dataDir, sessionId), "transcript.jsonl");
|
|
15
|
+
}
|
|
16
|
+
/** Resolves the metadata file path for a session */
|
|
17
|
+
export function metadataPath(dataDir, sessionId) {
|
|
18
|
+
return path.join(sessionDir(dataDir, sessionId), "session.json");
|
|
19
|
+
}
|
|
20
|
+
/** Creates a new session with a generated ID */
|
|
21
|
+
export async function createSession(dataDir, channel) {
|
|
22
|
+
const sessionId = randomUUID();
|
|
23
|
+
const dir = sessionDir(dataDir, sessionId);
|
|
24
|
+
await fs.mkdir(dir, { recursive: true });
|
|
25
|
+
// Store channel in a temporary file to be used later
|
|
26
|
+
const channelPath = path.join(dir, ".channel");
|
|
27
|
+
await fs.writeFile(channelPath, channel, "utf-8");
|
|
28
|
+
return sessionId;
|
|
29
|
+
}
|
|
30
|
+
/** Ensures a session directory exists (for resuming an existing session) */
|
|
31
|
+
export async function ensureSession(dataDir, sessionId) {
|
|
32
|
+
const dir = sessionDir(dataDir, sessionId);
|
|
33
|
+
await fs.mkdir(dir, { recursive: true });
|
|
34
|
+
}
|
|
35
|
+
/** Loads all transcript entries from a session */
|
|
36
|
+
export async function loadTranscript(dataDir, sessionId) {
|
|
37
|
+
const filePath = transcriptPath(dataDir, sessionId);
|
|
38
|
+
let content;
|
|
39
|
+
try {
|
|
40
|
+
content = await fs.readFile(filePath, "utf-8");
|
|
41
|
+
}
|
|
42
|
+
catch (err) {
|
|
43
|
+
const code = err.code;
|
|
44
|
+
if (code === "ENOENT") {
|
|
45
|
+
return [];
|
|
46
|
+
}
|
|
47
|
+
throw err;
|
|
48
|
+
}
|
|
49
|
+
const entries = [];
|
|
50
|
+
for (const line of content.split("\n")) {
|
|
51
|
+
const trimmed = line.trim();
|
|
52
|
+
if (!trimmed)
|
|
53
|
+
continue;
|
|
54
|
+
try {
|
|
55
|
+
entries.push(JSON.parse(trimmed));
|
|
56
|
+
}
|
|
57
|
+
catch {
|
|
58
|
+
// Skip malformed lines
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
return entries;
|
|
62
|
+
}
|
|
63
|
+
/** Appends a single entry to the transcript file */
|
|
64
|
+
export async function appendTranscriptEntry(dataDir, sessionId, entry, options) {
|
|
65
|
+
await ensureSession(dataDir, sessionId);
|
|
66
|
+
const filePath = transcriptPath(dataDir, sessionId);
|
|
67
|
+
const line = JSON.stringify(entry) + "\n";
|
|
68
|
+
await fs.appendFile(filePath, line, "utf-8");
|
|
69
|
+
try {
|
|
70
|
+
const { resolveMemoryProvider } = await import("../memory/provider-registry.js");
|
|
71
|
+
const { createBuiltinMemoryProvider } = await import("../memory/builtin-provider.js");
|
|
72
|
+
const memoryRoot = path.join(dataDir, ".aimax");
|
|
73
|
+
const resolved = resolveMemoryProvider({
|
|
74
|
+
providerId: options?.providerId,
|
|
75
|
+
pluginId: options?.pluginId,
|
|
76
|
+
dataDir,
|
|
77
|
+
memoryDir: memoryRoot,
|
|
78
|
+
});
|
|
79
|
+
const provider = resolved?.provider ?? createBuiltinMemoryProvider({ dataDir, memoryDir: memoryRoot });
|
|
80
|
+
if (provider.noteSessionUpdate) {
|
|
81
|
+
provider.noteSessionUpdate(filePath);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
catch {
|
|
85
|
+
// Non-fatal: memory index may be unavailable.
|
|
86
|
+
}
|
|
87
|
+
if (options?.onMemoryChanged) {
|
|
88
|
+
await Promise.resolve(options.onMemoryChanged({
|
|
89
|
+
reason: "transcript-append",
|
|
90
|
+
files: [path.join("sessions", sessionId, "transcript.jsonl").replace(/\\/g, "/")],
|
|
91
|
+
source: "sessions",
|
|
92
|
+
sessionId,
|
|
93
|
+
providerId: options.providerId ?? options.pluginId,
|
|
94
|
+
timestamp: new Date().toISOString(),
|
|
95
|
+
})).catch(() => { });
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
/** Lists all session IDs within a data directory */
|
|
99
|
+
export async function listSessions(dataDir) {
|
|
100
|
+
const dir = sessionsDir(dataDir);
|
|
101
|
+
try {
|
|
102
|
+
const entries = await fs.readdir(dir, { withFileTypes: true });
|
|
103
|
+
return entries
|
|
104
|
+
.filter((entry) => entry.isDirectory())
|
|
105
|
+
.map((entry) => entry.name)
|
|
106
|
+
.sort();
|
|
107
|
+
}
|
|
108
|
+
catch (err) {
|
|
109
|
+
const code = err.code;
|
|
110
|
+
if (code === "ENOENT") {
|
|
111
|
+
return [];
|
|
112
|
+
}
|
|
113
|
+
throw err;
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
/** Saves session metadata to disk */
|
|
117
|
+
export async function saveSessionMetadata(dataDir, metadata) {
|
|
118
|
+
await ensureSession(dataDir, metadata.id);
|
|
119
|
+
const filePath = metadataPath(dataDir, metadata.id);
|
|
120
|
+
await fs.writeFile(filePath, JSON.stringify(metadata, null, 2), "utf-8");
|
|
121
|
+
}
|
|
122
|
+
/** Loads session metadata from disk; returns null if not found */
|
|
123
|
+
export async function loadSessionMetadata(dataDir, sessionId) {
|
|
124
|
+
const filePath = metadataPath(dataDir, sessionId);
|
|
125
|
+
try {
|
|
126
|
+
const content = await fs.readFile(filePath, "utf-8");
|
|
127
|
+
const meta = JSON.parse(content);
|
|
128
|
+
// If channel is not in metadata, try to read from .channel file for backward compatibility
|
|
129
|
+
if (!meta.channel) {
|
|
130
|
+
const channelPath = path.join(sessionDir(dataDir, sessionId), ".channel");
|
|
131
|
+
try {
|
|
132
|
+
const channelContent = await fs.readFile(channelPath, "utf-8");
|
|
133
|
+
meta.channel = channelContent.trim();
|
|
134
|
+
}
|
|
135
|
+
catch {
|
|
136
|
+
// Default to WEB if no channel info exists
|
|
137
|
+
meta.channel = "WEB";
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
return meta;
|
|
141
|
+
}
|
|
142
|
+
catch (err) {
|
|
143
|
+
const code = err.code;
|
|
144
|
+
if (code === "ENOENT") {
|
|
145
|
+
// Metadata file doesn't exist, return null
|
|
146
|
+
// Note: The .channel file is only used when metadata exists but lacks channel
|
|
147
|
+
return null;
|
|
148
|
+
}
|
|
149
|
+
throw err;
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
/** Lists all sessions with their metadata summaries, optionally filtered by channel */
|
|
153
|
+
export async function listSessionSummaries(dataDir, channel) {
|
|
154
|
+
const ids = await listSessions(dataDir);
|
|
155
|
+
const summaries = await Promise.all(ids.map(async (id) => {
|
|
156
|
+
const meta = await loadSessionMetadata(dataDir, id);
|
|
157
|
+
return {
|
|
158
|
+
id,
|
|
159
|
+
title: meta?.title ?? id,
|
|
160
|
+
channel: meta?.channel ?? "WEB",
|
|
161
|
+
createdAt: meta?.createdAt ?? "",
|
|
162
|
+
updatedAt: meta?.updatedAt ?? "",
|
|
163
|
+
};
|
|
164
|
+
}));
|
|
165
|
+
return channel ? summaries.filter((s) => s.channel === channel) : summaries;
|
|
166
|
+
}
|
|
167
|
+
//# sourceMappingURL=session.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/session/session.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/** Resolves the skills directory path within a data directory */
|
|
2
|
+
export declare function skillsDir(dataDir: string): string;
|
|
3
|
+
/** Represents a loaded skill */
|
|
4
|
+
export type Skill = {
|
|
5
|
+
name: string;
|
|
6
|
+
description: string;
|
|
7
|
+
location: string;
|
|
8
|
+
};
|
|
9
|
+
/**
|
|
10
|
+
* Loads all installed skills from the skills directory.
|
|
11
|
+
* Each skill is a directory containing a SKILL.md file.
|
|
12
|
+
* Returns at most MAX_SKILLS_IN_PROMPT skills.
|
|
13
|
+
*/
|
|
14
|
+
export declare function loadSkills(dataDir: string): Promise<Skill[]>;
|
|
15
|
+
export declare function loadSkillsWithPluginDirs(dataDir: string, pluginDirs: string[]): Promise<Skill[]>;
|
|
16
|
+
export declare function loadSkillsFromDirs(dirs: string[]): Promise<Skill[]>;
|
|
17
|
+
/**
|
|
18
|
+
* Builds the skills section of the system prompt.
|
|
19
|
+
* Returns an empty string when no skills are available.
|
|
20
|
+
* Format matches openclaw's <available_skills> XML structure.
|
|
21
|
+
*/
|
|
22
|
+
export declare function buildSkillsPrompt(skills: Skill[]): string;
|
|
23
|
+
//# sourceMappingURL=skills.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skills.d.ts","sourceRoot":"","sources":["../../src/skills/skills.ts"],"names":[],"mappings":"AAGA,iEAAiE;AACjE,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEjD;AAED,gCAAgC;AAChC,MAAM,MAAM,KAAK,GAAG;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAiCF;;;;GAIG;AACH,wBAAsB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC,CAElE;AAED,wBAAsB,wBAAwB,CAC5C,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,EAAE,GACnB,OAAO,CAAC,KAAK,EAAE,CAAC,CAGlB;AAED,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC,CA0CzE;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,CAmBzD"}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
import fs from "node:fs/promises";
|
|
2
|
+
import path from "node:path";
|
|
3
|
+
/** Resolves the skills directory path within a data directory */
|
|
4
|
+
export function skillsDir(dataDir) {
|
|
5
|
+
return path.join(dataDir, ".aimax", "skills");
|
|
6
|
+
}
|
|
7
|
+
/** Maximum characters allowed for a skill description in the prompt */
|
|
8
|
+
const MAX_SKILL_DESCRIPTION_CHARS = 500;
|
|
9
|
+
/** Maximum skills to include in the prompt */
|
|
10
|
+
const MAX_SKILLS_IN_PROMPT = 50;
|
|
11
|
+
/**
|
|
12
|
+
* Extracts the first non-empty line that could serve as a description
|
|
13
|
+
* from a SKILL.md content string.
|
|
14
|
+
* Looks for a line starting with "Description:" or the first paragraph text.
|
|
15
|
+
*/
|
|
16
|
+
function extractSkillDescription(content) {
|
|
17
|
+
const lines = content.split("\n").map((l) => l.trim());
|
|
18
|
+
// Look for an explicit "Description:" field
|
|
19
|
+
for (const line of lines) {
|
|
20
|
+
if (line.toLowerCase().startsWith("description:")) {
|
|
21
|
+
const desc = line.slice("description:".length).trim();
|
|
22
|
+
if (desc)
|
|
23
|
+
return desc.slice(0, MAX_SKILL_DESCRIPTION_CHARS);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
// Fall back to first non-empty, non-heading line
|
|
27
|
+
for (const line of lines) {
|
|
28
|
+
if (line && !line.startsWith("#") && !line.startsWith("---")) {
|
|
29
|
+
return line.slice(0, MAX_SKILL_DESCRIPTION_CHARS);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
return "";
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Loads all installed skills from the skills directory.
|
|
36
|
+
* Each skill is a directory containing a SKILL.md file.
|
|
37
|
+
* Returns at most MAX_SKILLS_IN_PROMPT skills.
|
|
38
|
+
*/
|
|
39
|
+
export async function loadSkills(dataDir) {
|
|
40
|
+
return loadSkillsFromDirs([skillsDir(dataDir)]);
|
|
41
|
+
}
|
|
42
|
+
export async function loadSkillsWithPluginDirs(dataDir, pluginDirs) {
|
|
43
|
+
const dirs = [skillsDir(dataDir), ...pluginDirs];
|
|
44
|
+
return loadSkillsFromDirs(dirs);
|
|
45
|
+
}
|
|
46
|
+
export async function loadSkillsFromDirs(dirs) {
|
|
47
|
+
const skills = [];
|
|
48
|
+
const seenNames = new Set();
|
|
49
|
+
for (const dir of dirs) {
|
|
50
|
+
let entries;
|
|
51
|
+
try {
|
|
52
|
+
entries = await fs.readdir(dir, { withFileTypes: true });
|
|
53
|
+
}
|
|
54
|
+
catch (err) {
|
|
55
|
+
const code = err.code;
|
|
56
|
+
if (code === "ENOENT") {
|
|
57
|
+
continue;
|
|
58
|
+
}
|
|
59
|
+
throw err;
|
|
60
|
+
}
|
|
61
|
+
const skillDirs = entries.filter((e) => e.isDirectory()).map((e) => e.name);
|
|
62
|
+
for (const skillName of skillDirs.sort()) {
|
|
63
|
+
if (skills.length >= MAX_SKILLS_IN_PROMPT)
|
|
64
|
+
break;
|
|
65
|
+
if (seenNames.has(skillName))
|
|
66
|
+
continue;
|
|
67
|
+
const skillMdPath = path.join(dir, skillName, "SKILL.md");
|
|
68
|
+
let content;
|
|
69
|
+
try {
|
|
70
|
+
content = await fs.readFile(skillMdPath, "utf-8");
|
|
71
|
+
}
|
|
72
|
+
catch (err) {
|
|
73
|
+
const code = err.code;
|
|
74
|
+
if (code === "ENOENT")
|
|
75
|
+
continue; // no SKILL.md, skip
|
|
76
|
+
throw err;
|
|
77
|
+
}
|
|
78
|
+
const description = extractSkillDescription(content);
|
|
79
|
+
skills.push({
|
|
80
|
+
name: skillName,
|
|
81
|
+
description,
|
|
82
|
+
location: skillMdPath,
|
|
83
|
+
});
|
|
84
|
+
seenNames.add(skillName);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
return skills;
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Builds the skills section of the system prompt.
|
|
91
|
+
* Returns an empty string when no skills are available.
|
|
92
|
+
* Format matches openclaw's <available_skills> XML structure.
|
|
93
|
+
*/
|
|
94
|
+
export function buildSkillsPrompt(skills) {
|
|
95
|
+
if (skills.length === 0) {
|
|
96
|
+
return "";
|
|
97
|
+
}
|
|
98
|
+
const skillEntries = skills
|
|
99
|
+
.map((skill) => [
|
|
100
|
+
" <skill>",
|
|
101
|
+
` <name>${skill.name}</name>`,
|
|
102
|
+
` <description>${skill.description}</description>`,
|
|
103
|
+
` <location>${skill.location}</location>`,
|
|
104
|
+
" </skill>",
|
|
105
|
+
].join("\n"))
|
|
106
|
+
.join("\n");
|
|
107
|
+
return `<available_skills>\n${skillEntries}\n</available_skills>`;
|
|
108
|
+
}
|
|
109
|
+
//# sourceMappingURL=skills.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skills.js","sourceRoot":"","sources":["../../src/skills/skills.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Subagent registry persistence for AIMax.
|
|
3
|
+
* Handles saving/loading subagent run records to/from disk.
|
|
4
|
+
*/
|
|
5
|
+
import type { SubagentRunRecord } from "./types.js";
|
|
6
|
+
/** Persistable subagent run record (without AbortController) */
|
|
7
|
+
export type PersistedSubagentRunRecord = Omit<SubagentRunRecord, "abortController"> & {
|
|
8
|
+
version?: number;
|
|
9
|
+
};
|
|
10
|
+
/**
|
|
11
|
+
* Loads subagent run records from disk.
|
|
12
|
+
* Returns an empty map if the file doesn't exist or is invalid.
|
|
13
|
+
*/
|
|
14
|
+
export declare function loadSubagentRegistryFromDisk(dataDir: string): Promise<Map<string, SubagentRunRecord>>;
|
|
15
|
+
/**
|
|
16
|
+
* Saves subagent run records to disk.
|
|
17
|
+
* Only records with a valid endedAt timestamp are persisted
|
|
18
|
+
* (completed runs are kept for history, running runs are not persisted).
|
|
19
|
+
*/
|
|
20
|
+
export declare function saveSubagentRegistryToDisk(dataDir: string, runs: Map<string, SubagentRunRecord>): Promise<void>;
|
|
21
|
+
/**
|
|
22
|
+
* Lists subagent runs for a specific parent session from disk.
|
|
23
|
+
* Useful for querying historical subagent runs.
|
|
24
|
+
*/
|
|
25
|
+
export declare function listSubagentRunsFromDisk(dataDir: string, parentSessionId: string): Promise<PersistedSubagentRunRecord[]>;
|
|
26
|
+
/**
|
|
27
|
+
* Cleans up old subagent records from disk.
|
|
28
|
+
* Removes records older than the specified number of days.
|
|
29
|
+
*/
|
|
30
|
+
export declare function cleanupOldSubagentRecords(dataDir: string, olderThanDays?: number): Promise<number>;
|
|
31
|
+
//# sourceMappingURL=registry-persist.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry-persist.d.ts","sourceRoot":"","sources":["../../src/subagent/registry-persist.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAKpD,gEAAgE;AAChE,MAAM,MAAM,0BAA0B,GAAG,IAAI,CAC3C,iBAAiB,EACjB,iBAAiB,CAClB,GAAG;IACF,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF;;;GAGG;AACH,wBAAsB,4BAA4B,CAChD,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC,CA+CzC;AAED;;;;GAIG;AACH,wBAAsB,0BAA0B,CAC9C,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,iBAAiB,CAAC,GACnC,OAAO,CAAC,IAAI,CAAC,CAsBf;AAED;;;GAGG;AACH,wBAAsB,wBAAwB,CAC5C,OAAO,EAAE,MAAM,EACf,eAAe,EAAE,MAAM,GACtB,OAAO,CAAC,0BAA0B,EAAE,CAAC,CAYvC;AAED;;;GAGG;AACH,wBAAsB,yBAAyB,CAC7C,OAAO,EAAE,MAAM,EACf,aAAa,GAAE,MAAU,GACxB,OAAO,CAAC,MAAM,CAAC,CAkBjB"}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Subagent registry persistence for AIMax.
|
|
3
|
+
* Handles saving/loading subagent run records to/from disk.
|
|
4
|
+
*/
|
|
5
|
+
import fs from "node:fs/promises";
|
|
6
|
+
import path from "node:path";
|
|
7
|
+
/** Version of the persisted subagent registry format */
|
|
8
|
+
const REGISTRY_VERSION = 1;
|
|
9
|
+
/**
|
|
10
|
+
* Loads subagent run records from disk.
|
|
11
|
+
* Returns an empty map if the file doesn't exist or is invalid.
|
|
12
|
+
*/
|
|
13
|
+
export async function loadSubagentRegistryFromDisk(dataDir) {
|
|
14
|
+
const registryPath = path.join(dataDir, ".aimax", "subagents", "runs.json");
|
|
15
|
+
try {
|
|
16
|
+
const content = await fs.readFile(registryPath, "utf-8");
|
|
17
|
+
const data = JSON.parse(content);
|
|
18
|
+
if (!data || typeof data !== "object") {
|
|
19
|
+
return new Map();
|
|
20
|
+
}
|
|
21
|
+
// Handle both versioned and legacy formats
|
|
22
|
+
let records;
|
|
23
|
+
if (data.version === REGISTRY_VERSION && data.records) {
|
|
24
|
+
records = data.records;
|
|
25
|
+
}
|
|
26
|
+
else if (data.version === undefined) {
|
|
27
|
+
// Legacy format: direct record object
|
|
28
|
+
records = data;
|
|
29
|
+
}
|
|
30
|
+
else {
|
|
31
|
+
return new Map();
|
|
32
|
+
}
|
|
33
|
+
const result = new Map();
|
|
34
|
+
for (const [runId, record] of Object.entries(records)) {
|
|
35
|
+
if (!record || typeof record !== "object")
|
|
36
|
+
continue;
|
|
37
|
+
const persisted = record;
|
|
38
|
+
// Recreate AbortController for loaded records
|
|
39
|
+
// Note: controllers are inactive but allow the record to be used
|
|
40
|
+
result.set(runId, {
|
|
41
|
+
...persisted,
|
|
42
|
+
abortController: new AbortController(),
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
return result;
|
|
46
|
+
}
|
|
47
|
+
catch (err) {
|
|
48
|
+
const code = err.code;
|
|
49
|
+
if (code === "ENOENT") {
|
|
50
|
+
return new Map();
|
|
51
|
+
}
|
|
52
|
+
// Log but don't fail on parse errors
|
|
53
|
+
// console.error(`Failed to load subagent registry: ${err}`);
|
|
54
|
+
return new Map();
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Saves subagent run records to disk.
|
|
59
|
+
* Only records with a valid endedAt timestamp are persisted
|
|
60
|
+
* (completed runs are kept for history, running runs are not persisted).
|
|
61
|
+
*/
|
|
62
|
+
export async function saveSubagentRegistryToDisk(dataDir, runs) {
|
|
63
|
+
const registryPath = path.join(dataDir, ".aimax", "subagents", "runs.json");
|
|
64
|
+
// Only persist completed runs (with endedAt)
|
|
65
|
+
// Running runs are transient and shouldn't be persisted across restarts
|
|
66
|
+
const records = {};
|
|
67
|
+
for (const [runId, record] of runs.entries()) {
|
|
68
|
+
// Only persist completed runs
|
|
69
|
+
if (typeof record.endedAt === "number") {
|
|
70
|
+
const { abortController: _, ...persistable } = record;
|
|
71
|
+
records[runId] = { ...persistable, version: REGISTRY_VERSION };
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
const data = {
|
|
75
|
+
version: REGISTRY_VERSION,
|
|
76
|
+
records,
|
|
77
|
+
};
|
|
78
|
+
await fs.mkdir(path.dirname(registryPath), { recursive: true });
|
|
79
|
+
await fs.writeFile(registryPath, JSON.stringify(data, null, 2), "utf-8");
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Lists subagent runs for a specific parent session from disk.
|
|
83
|
+
* Useful for querying historical subagent runs.
|
|
84
|
+
*/
|
|
85
|
+
export async function listSubagentRunsFromDisk(dataDir, parentSessionId) {
|
|
86
|
+
const allRuns = await loadSubagentRegistryFromDisk(dataDir);
|
|
87
|
+
const result = [];
|
|
88
|
+
for (const record of allRuns.values()) {
|
|
89
|
+
if (record.parentSessionId === parentSessionId) {
|
|
90
|
+
const { abortController: _, ...persistable } = record;
|
|
91
|
+
result.push({ ...persistable, version: REGISTRY_VERSION });
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
return result.sort((a, b) => a.startedAt - b.startedAt);
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Cleans up old subagent records from disk.
|
|
98
|
+
* Removes records older than the specified number of days.
|
|
99
|
+
*/
|
|
100
|
+
export async function cleanupOldSubagentRecords(dataDir, olderThanDays = 7) {
|
|
101
|
+
const allRuns = await loadSubagentRegistryFromDisk(dataDir);
|
|
102
|
+
const cutoffTime = Date.now() - olderThanDays * 24 * 60 * 60 * 1000;
|
|
103
|
+
let removed = 0;
|
|
104
|
+
for (const [runId, record] of allRuns.entries()) {
|
|
105
|
+
if (record.endedAt && record.endedAt < cutoffTime) {
|
|
106
|
+
allRuns.delete(runId);
|
|
107
|
+
removed++;
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
if (removed > 0) {
|
|
111
|
+
await saveSubagentRegistryToDisk(dataDir, allRuns);
|
|
112
|
+
}
|
|
113
|
+
return removed;
|
|
114
|
+
}
|
|
115
|
+
//# sourceMappingURL=registry-persist.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry-persist.js","sourceRoot":"","sources":["../../src/subagent/registry-persist.ts"],"names":[],"mappings":"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"}
|