@felan-ai/felan 0.1.0-alpha.2 → 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.
@@ -0,0 +1,8 @@
1
+ import type { SubagentDescriptor } from '@felan-ai/ext-subagents';
2
+ export interface LocalSubagentDefinition {
3
+ readonly descriptor: SubagentDescriptor;
4
+ readonly prompt: string;
5
+ readonly capability: 'coding' | 'read-only';
6
+ }
7
+ export declare function discoverLocalSubagents(cwd: string, agentDir: string): Promise<readonly LocalSubagentDefinition[]>;
8
+ //# sourceMappingURL=catalog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"catalog.d.ts","sourceRoot":"","sources":["../../src/subagents/catalog.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,kBAAkB,EAEnB,MAAM,yBAAyB,CAAC;AAEjC,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,UAAU,EAAE,kBAAkB,CAAC;IACxC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,UAAU,EAAE,QAAQ,GAAG,WAAW,CAAC;CAC7C;AAgCD,wBAAsB,sBAAsB,CAC1C,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,SAAS,uBAAuB,EAAE,CAAC,CAS7C"}
@@ -0,0 +1,132 @@
1
+ import { readFile, readdir } from 'node:fs/promises';
2
+ import { basename, extname, join } from 'node:path';
3
+ const bundledDefinitions = [
4
+ {
5
+ descriptor: {
6
+ id: 'general',
7
+ description: 'General-purpose agent for implementation and investigation',
8
+ allowNesting: true,
9
+ },
10
+ prompt: 'You are a general-purpose Felan subagent. Complete the assigned task and report a concise result.',
11
+ capability: 'coding',
12
+ },
13
+ {
14
+ descriptor: {
15
+ id: 'explore',
16
+ description: 'Read-focused agent for codebase exploration and analysis',
17
+ allowNesting: false,
18
+ },
19
+ prompt: 'You are a read-focused Felan subagent. Investigate the assigned task and report findings without modifying files.',
20
+ capability: 'read-only',
21
+ },
22
+ {
23
+ descriptor: {
24
+ id: 'reviewer',
25
+ description: 'Code reviewer focused on correctness and regressions',
26
+ allowNesting: false,
27
+ },
28
+ prompt: 'You are a Felan code-review subagent. Inspect the assigned work for correctness, security, and regressions.',
29
+ capability: 'read-only',
30
+ },
31
+ ];
32
+ export async function discoverLocalSubagents(cwd, agentDir) {
33
+ const definitions = new Map(bundledDefinitions.map((definition) => [definition.descriptor.id, definition]));
34
+ for (const definition of await readDefinitions(join(agentDir, 'agents'))) {
35
+ definitions.set(definition.descriptor.id, definition);
36
+ }
37
+ for (const definition of await readDefinitions(join(cwd, '.felan', 'agents'))) {
38
+ definitions.set(definition.descriptor.id, definition);
39
+ }
40
+ return [...definitions.values()].map(freezeDefinition);
41
+ }
42
+ async function readDefinitions(directory) {
43
+ let files;
44
+ try {
45
+ files = (await readdir(directory, { withFileTypes: true }))
46
+ .filter((entry) => entry.isFile() && extname(entry.name) === '.md')
47
+ .map((entry) => entry.name)
48
+ .sort();
49
+ }
50
+ catch (error) {
51
+ if (isMissing(error))
52
+ return [];
53
+ throw error;
54
+ }
55
+ const definitions = [];
56
+ for (const file of files) {
57
+ definitions.push(parseDefinition(file, await readFile(join(directory, file), 'utf8')));
58
+ }
59
+ return definitions;
60
+ }
61
+ function parseDefinition(file, source) {
62
+ const { fields, body } = frontmatter(source);
63
+ const id = fields.id ?? basename(file, '.md');
64
+ if (!/^[a-z0-9][a-z0-9_-]*$/.test(id))
65
+ throw new Error(`Invalid Felan agent id in ${file}`);
66
+ const description = fields.description?.trim();
67
+ if (!description)
68
+ throw new Error(`Felan agent ${file} requires a description`);
69
+ if (!body.trim())
70
+ throw new Error(`Felan agent ${file} requires a prompt body`);
71
+ const thinking = parseThinking(fields.thinking, file);
72
+ const defaultMaxTurns = parsePositiveInteger(fields.max_turns, 'max_turns', file);
73
+ const defaultTimeoutSeconds = parsePositiveInteger(fields.timeout_seconds, 'timeout_seconds', file);
74
+ const capability = fields.capability ?? 'coding';
75
+ if (capability !== 'coding' && capability !== 'read-only') {
76
+ throw new Error(`Felan agent ${file} has an unknown capability`);
77
+ }
78
+ return {
79
+ descriptor: {
80
+ id,
81
+ description,
82
+ allowNesting: capability === 'coding' && fields.allow_nesting === 'true',
83
+ ...(fields.model === undefined ? {} : { defaultModel: fields.model }),
84
+ ...(thinking === undefined ? {} : { defaultThinking: thinking }),
85
+ ...(defaultMaxTurns === undefined ? {} : { defaultMaxTurns }),
86
+ ...(defaultTimeoutSeconds === undefined ? {} : { defaultTimeoutSeconds }),
87
+ },
88
+ prompt: body.trim(),
89
+ capability,
90
+ };
91
+ }
92
+ function frontmatter(source) {
93
+ if (!source.startsWith('---\n'))
94
+ return { fields: {}, body: source };
95
+ const end = source.indexOf('\n---\n', 4);
96
+ if (end < 0)
97
+ return { fields: {}, body: source };
98
+ const fields = {};
99
+ for (const line of source.slice(4, end).split('\n')) {
100
+ const separator = line.indexOf(':');
101
+ if (separator <= 0)
102
+ continue;
103
+ fields[line.slice(0, separator).trim()] = line.slice(separator + 1).trim();
104
+ }
105
+ return { fields, body: source.slice(end + 5) };
106
+ }
107
+ function parseThinking(value, file) {
108
+ if (!value)
109
+ return undefined;
110
+ if (!['off', 'minimal', 'low', 'medium', 'high', 'xhigh', 'max'].includes(value)) {
111
+ throw new Error(`Felan agent ${file} has invalid thinking`);
112
+ }
113
+ return value;
114
+ }
115
+ function parsePositiveInteger(value, field, file) {
116
+ if (value === undefined)
117
+ return undefined;
118
+ const parsed = Number(value);
119
+ if (!Number.isInteger(parsed) || parsed < 1)
120
+ throw new Error(`Felan agent ${file} has invalid ${field}`);
121
+ return parsed;
122
+ }
123
+ function freezeDefinition(definition) {
124
+ return Object.freeze({
125
+ ...definition,
126
+ descriptor: Object.freeze({ ...definition.descriptor }),
127
+ });
128
+ }
129
+ function isMissing(error) {
130
+ return error instanceof Error && 'code' in error && error.code === 'ENOENT';
131
+ }
132
+ //# sourceMappingURL=catalog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"catalog.js","sourceRoot":"","sources":["../../src/subagents/catalog.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,85 @@
1
+ import { type AgentRuntime, type ExtensionPackageImporter, type ModelRuntime, type SettingsManager } from '@felan-ai/agent-core';
2
+ import { type SubagentError, type SubagentHost, type SubagentHostResult, type SubagentParentPort, type SubagentPolicy, type SubagentRecord, type SubagentSpawnRequest } from '@felan-ai/ext-subagents';
3
+ import { type LocalSubagentDefinition } from './catalog.js';
4
+ export interface LocalSubagentSettings {
5
+ readonly concurrency?: number;
6
+ readonly maxDepth?: number;
7
+ }
8
+ export type LocalSubagentView = SubagentRecord;
9
+ export interface CreateLocalSubagentHostOptions {
10
+ readonly sessionId: string;
11
+ readonly cwd: string;
12
+ readonly agentDir: string;
13
+ readonly modelRuntime: ModelRuntime;
14
+ readonly settingsManager: SettingsManager;
15
+ readonly extensionPackages: readonly string[];
16
+ readonly importExtension: ExtensionPackageImporter;
17
+ readonly runtimeFactory?: (cwd: string) => AgentRuntime;
18
+ readonly settings?: LocalSubagentSettings;
19
+ readonly runChild?: LocalSubagentRunner;
20
+ }
21
+ export interface LocalSubagentRunInput {
22
+ readonly sessionId: string;
23
+ readonly depth: number;
24
+ readonly subagents: SubagentHost;
25
+ readonly request: SubagentSpawnRequest;
26
+ readonly definition: LocalSubagentDefinition;
27
+ readonly sessionFile?: string;
28
+ readonly cwd: string;
29
+ readonly signal: AbortSignal;
30
+ readonly initialMessage: string;
31
+ readonly onReady: (control: LocalSubagentControl) => Promise<void>;
32
+ }
33
+ export interface LocalSubagentControl {
34
+ steer(message: string): Promise<void>;
35
+ cancel(): Promise<void>;
36
+ }
37
+ export interface LocalSubagentRunOutcome {
38
+ readonly result?: string;
39
+ readonly error?: SubagentError;
40
+ readonly sessionFile?: string;
41
+ readonly turnLimitReached?: boolean;
42
+ }
43
+ export type LocalSubagentRunner = (input: LocalSubagentRunInput) => Promise<LocalSubagentRunOutcome>;
44
+ export declare class LocalSubagentHost implements SubagentHost {
45
+ #private;
46
+ readonly descriptors: readonly import("@felan-ai/ext-subagents").SubagentDescriptor[];
47
+ readonly policy: SubagentPolicy;
48
+ constructor(manager: LocalSubagentManager, sessionId: string);
49
+ static create(options: CreateLocalSubagentHostOptions): Promise<LocalSubagentHost>;
50
+ attachParent(port: SubagentParentPort): () => void;
51
+ spawn(request: SubagentSpawnRequest, signal?: AbortSignal): Promise<SubagentHostResult<SubagentRecord>>;
52
+ list(options: {
53
+ readonly includeDescendants: boolean;
54
+ }): Promise<SubagentHostResult<readonly SubagentRecord[]>>;
55
+ getResult(agentId: string, options: {
56
+ readonly wait: boolean;
57
+ readonly timeoutSeconds?: number;
58
+ }, signal?: AbortSignal): Promise<SubagentHostResult<SubagentRecord>>;
59
+ steer(agentId: string, message: string): Promise<SubagentHostResult<SubagentRecord>>;
60
+ cancel(agentId: string, reason?: string): Promise<SubagentHostResult<SubagentRecord>>;
61
+ subscribe(listener: (records: readonly LocalSubagentView[]) => void): () => void;
62
+ shutdown(): Promise<void>;
63
+ }
64
+ export declare class LocalSubagentManager {
65
+ #private;
66
+ readonly definitions: ReadonlyMap<string, LocalSubagentDefinition>;
67
+ readonly descriptors: readonly import("@felan-ai/ext-subagents").SubagentDescriptor[];
68
+ readonly policy: SubagentPolicy;
69
+ private constructor();
70
+ static create(options: CreateLocalSubagentHostOptions, definitions: readonly LocalSubagentDefinition[]): Promise<LocalSubagentManager>;
71
+ attachParent(sessionId: string, port: SubagentParentPort): () => void;
72
+ spawn(parentSessionId: string, request: SubagentSpawnRequest, signal?: AbortSignal): Promise<SubagentHostResult<SubagentRecord>>;
73
+ list(parentSessionId: string, options: {
74
+ readonly includeDescendants: boolean;
75
+ }): Promise<SubagentHostResult<readonly SubagentRecord[]>>;
76
+ getResult(parentSessionId: string, agentId: string, options: {
77
+ readonly wait: boolean;
78
+ readonly timeoutSeconds?: number;
79
+ }, signal?: AbortSignal): Promise<SubagentHostResult<SubagentRecord>>;
80
+ steer(parentSessionId: string, agentId: string, message: string): Promise<SubagentHostResult<SubagentRecord>>;
81
+ cancel(parentSessionId: string, agentId: string, reason?: string): Promise<SubagentHostResult<SubagentRecord>>;
82
+ subscribe(listener: (records: readonly LocalSubagentView[]) => void): () => void;
83
+ shutdown(): Promise<void>;
84
+ }
85
+ //# sourceMappingURL=host.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"host.d.ts","sourceRoot":"","sources":["../../src/subagents/host.ts"],"names":[],"mappings":"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"}