@dot-ai/core 0.5.2 → 0.8.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/dist/boot-cache.d.ts +40 -0
- package/dist/boot-cache.d.ts.map +1 -0
- package/dist/boot-cache.js +72 -0
- package/dist/boot-cache.js.map +1 -0
- package/dist/capabilities.d.ts +35 -0
- package/dist/capabilities.d.ts.map +1 -0
- package/dist/capabilities.js +17 -0
- package/dist/capabilities.js.map +1 -0
- package/dist/config.d.ts +7 -23
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +131 -108
- package/dist/config.js.map +1 -1
- package/dist/extension-api.d.ts +65 -0
- package/dist/extension-api.d.ts.map +1 -0
- package/dist/extension-api.js +2 -0
- package/dist/extension-api.js.map +1 -0
- package/dist/extension-loader.d.ts +19 -0
- package/dist/extension-loader.d.ts.map +1 -0
- package/dist/extension-loader.js +113 -0
- package/dist/extension-loader.js.map +1 -0
- package/dist/extension-runner.d.ts +62 -0
- package/dist/extension-runner.d.ts.map +1 -0
- package/dist/extension-runner.js +260 -0
- package/dist/extension-runner.js.map +1 -0
- package/dist/extension-types.d.ts +312 -0
- package/dist/extension-types.d.ts.map +1 -0
- package/dist/extension-types.js +89 -0
- package/dist/extension-types.js.map +1 -0
- package/dist/format.d.ts +13 -1
- package/dist/format.d.ts.map +1 -1
- package/dist/format.js +131 -15
- package/dist/format.js.map +1 -1
- package/dist/format.spec.d.ts +2 -0
- package/dist/format.spec.d.ts.map +1 -0
- package/dist/format.spec.js +140 -0
- package/dist/format.spec.js.map +1 -0
- package/dist/index.d.ts +21 -14
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +21 -14
- package/dist/index.js.map +1 -1
- package/dist/logger.d.ts +1 -1
- package/dist/logger.d.ts.map +1 -1
- package/dist/package-manager.d.ts +30 -0
- package/dist/package-manager.d.ts.map +1 -0
- package/dist/package-manager.js +91 -0
- package/dist/package-manager.js.map +1 -0
- package/dist/runtime.d.ts +119 -0
- package/dist/runtime.d.ts.map +1 -0
- package/dist/runtime.js +441 -0
- package/dist/runtime.js.map +1 -0
- package/dist/types.d.ts +29 -10
- package/dist/types.d.ts.map +1 -1
- package/package.json +4 -1
- package/src/__tests__/capabilities.test.ts +72 -0
- package/src/__tests__/config.test.ts +22 -120
- package/src/__tests__/extension-loader.test.ts +84 -0
- package/src/__tests__/extension-runner.test.ts +228 -0
- package/src/__tests__/fixtures/extensions/ctx-aware.js +26 -0
- package/src/__tests__/fixtures/extensions/security-gate.js +20 -0
- package/src/__tests__/fixtures/extensions/session-analytics.js +28 -0
- package/src/__tests__/fixtures/extensions/smart-context.js +10 -0
- package/src/__tests__/format.test.ts +207 -2
- package/src/__tests__/runtime.test.ts +141 -0
- package/src/boot-cache.ts +104 -0
- package/src/capabilities.ts +49 -0
- package/src/config.ts +131 -133
- package/src/extension-api.ts +99 -0
- package/src/extension-loader.ts +127 -0
- package/src/extension-runner.ts +297 -0
- package/src/extension-types.ts +416 -0
- package/src/format.spec.ts +175 -0
- package/src/format.test.ts +218 -0
- package/src/format.ts +140 -16
- package/src/index.ts +68 -30
- package/src/logger.ts +1 -1
- package/src/package-manager.ts +119 -0
- package/src/runtime.ts +562 -0
- package/src/types.ts +36 -14
- package/tsconfig.json +1 -1
- package/tsconfig.tsbuildinfo +1 -1
- package/.ai/memory/2026-03-04.md +0 -2
- package/.ai/tasks.json +0 -7
- package/dist/__tests__/config.test.d.ts +0 -2
- package/dist/__tests__/config.test.d.ts.map +0 -1
- package/dist/__tests__/config.test.js +0 -128
- package/dist/__tests__/config.test.js.map +0 -1
- package/dist/__tests__/e2e.test.d.ts +0 -2
- package/dist/__tests__/e2e.test.d.ts.map +0 -1
- package/dist/__tests__/e2e.test.js +0 -211
- package/dist/__tests__/e2e.test.js.map +0 -1
- package/dist/__tests__/engine.test.d.ts +0 -2
- package/dist/__tests__/engine.test.d.ts.map +0 -1
- package/dist/__tests__/engine.test.js +0 -271
- package/dist/__tests__/engine.test.js.map +0 -1
- package/dist/__tests__/format.test.d.ts +0 -2
- package/dist/__tests__/format.test.d.ts.map +0 -1
- package/dist/__tests__/format.test.js +0 -200
- package/dist/__tests__/format.test.js.map +0 -1
- package/dist/__tests__/labels.test.d.ts +0 -2
- package/dist/__tests__/labels.test.d.ts.map +0 -1
- package/dist/__tests__/labels.test.js +0 -82
- package/dist/__tests__/labels.test.js.map +0 -1
- package/dist/__tests__/loader.test.d.ts +0 -2
- package/dist/__tests__/loader.test.d.ts.map +0 -1
- package/dist/__tests__/loader.test.js +0 -161
- package/dist/__tests__/loader.test.js.map +0 -1
- package/dist/__tests__/logger.test.d.ts +0 -2
- package/dist/__tests__/logger.test.d.ts.map +0 -1
- package/dist/__tests__/logger.test.js +0 -95
- package/dist/__tests__/logger.test.js.map +0 -1
- package/dist/__tests__/nodes.test.d.ts +0 -2
- package/dist/__tests__/nodes.test.d.ts.map +0 -1
- package/dist/__tests__/nodes.test.js +0 -83
- package/dist/__tests__/nodes.test.js.map +0 -1
- package/dist/contracts.d.ts +0 -56
- package/dist/contracts.d.ts.map +0 -1
- package/dist/contracts.js +0 -2
- package/dist/contracts.js.map +0 -1
- package/dist/engine.d.ts +0 -38
- package/dist/engine.d.ts.map +0 -1
- package/dist/engine.js +0 -88
- package/dist/engine.js.map +0 -1
- package/dist/loader.d.ts +0 -26
- package/dist/loader.d.ts.map +0 -1
- package/dist/loader.js +0 -120
- package/dist/loader.js.map +0 -1
- package/src/__tests__/e2e.test.ts +0 -257
- package/src/__tests__/engine.test.ts +0 -305
- package/src/__tests__/loader.test.ts +0 -191
- package/src/contracts.ts +0 -71
- package/src/engine.ts +0 -145
- package/src/loader.ts +0 -152
|
@@ -1,83 +0,0 @@
|
|
|
1
|
-
import { describe, it, expect, beforeEach } from 'vitest';
|
|
2
|
-
import { mkdtemp, mkdir, writeFile } from 'node:fs/promises';
|
|
3
|
-
import { tmpdir } from 'node:os';
|
|
4
|
-
import { join } from 'node:path';
|
|
5
|
-
import { discoverNodes, parseScanDirs } from '../nodes.js';
|
|
6
|
-
let root;
|
|
7
|
-
beforeEach(async () => {
|
|
8
|
-
root = await mkdtemp(join(tmpdir(), 'dot-ai-nodes-'));
|
|
9
|
-
});
|
|
10
|
-
describe('discoverNodes', () => {
|
|
11
|
-
it('returns root node even if .ai/ does not exist', () => {
|
|
12
|
-
const nodes = discoverNodes(root);
|
|
13
|
-
expect(nodes).toHaveLength(1);
|
|
14
|
-
expect(nodes[0].name).toBe('root');
|
|
15
|
-
expect(nodes[0].root).toBe(true);
|
|
16
|
-
});
|
|
17
|
-
it('discovers sub-nodes in projects/ directory', async () => {
|
|
18
|
-
await mkdir(join(root, '.ai'), { recursive: true });
|
|
19
|
-
await mkdir(join(root, 'projects', 'pro', '.ai'), { recursive: true });
|
|
20
|
-
await mkdir(join(root, 'projects', 'cockpit', '.ai'), { recursive: true });
|
|
21
|
-
// This project has no .ai/ — should be skipped
|
|
22
|
-
await mkdir(join(root, 'projects', 'no-ai'), { recursive: true });
|
|
23
|
-
const nodes = discoverNodes(root);
|
|
24
|
-
expect(nodes).toHaveLength(3); // root + pro + cockpit
|
|
25
|
-
expect(nodes.map(n => n.name).sort()).toEqual(['cockpit', 'pro', 'root']);
|
|
26
|
-
expect(nodes.find(n => n.name === 'pro')?.root).toBe(false);
|
|
27
|
-
});
|
|
28
|
-
it('supports custom scanDirs', async () => {
|
|
29
|
-
await mkdir(join(root, '.ai'), { recursive: true });
|
|
30
|
-
await mkdir(join(root, 'apps', 'web', '.ai'), { recursive: true });
|
|
31
|
-
const nodes = discoverNodes(root, ['apps']);
|
|
32
|
-
expect(nodes).toHaveLength(2);
|
|
33
|
-
expect(nodes[1].name).toBe('web');
|
|
34
|
-
});
|
|
35
|
-
it('handles multiple scanDirs', async () => {
|
|
36
|
-
await mkdir(join(root, '.ai'), { recursive: true });
|
|
37
|
-
await mkdir(join(root, 'projects', 'a', '.ai'), { recursive: true });
|
|
38
|
-
await mkdir(join(root, 'apps', 'b', '.ai'), { recursive: true });
|
|
39
|
-
const nodes = discoverNodes(root, ['projects', 'apps']);
|
|
40
|
-
expect(nodes).toHaveLength(3);
|
|
41
|
-
});
|
|
42
|
-
it('returns only root when scanDirs is empty', async () => {
|
|
43
|
-
await mkdir(join(root, '.ai'), { recursive: true });
|
|
44
|
-
await mkdir(join(root, 'projects', 'pro', '.ai'), { recursive: true });
|
|
45
|
-
const nodes = discoverNodes(root, []);
|
|
46
|
-
expect(nodes).toHaveLength(1);
|
|
47
|
-
});
|
|
48
|
-
it('ignores non-directory entries in scan path', async () => {
|
|
49
|
-
await mkdir(join(root, '.ai'), { recursive: true });
|
|
50
|
-
await mkdir(join(root, 'projects'), { recursive: true });
|
|
51
|
-
await writeFile(join(root, 'projects', 'not-a-dir'), 'hello');
|
|
52
|
-
const nodes = discoverNodes(root);
|
|
53
|
-
expect(nodes).toHaveLength(1); // only root
|
|
54
|
-
});
|
|
55
|
-
it('node paths point to .ai/ directory', async () => {
|
|
56
|
-
await mkdir(join(root, '.ai'), { recursive: true });
|
|
57
|
-
await mkdir(join(root, 'projects', 'pro', '.ai'), { recursive: true });
|
|
58
|
-
const nodes = discoverNodes(root);
|
|
59
|
-
const pro = nodes.find(n => n.name === 'pro');
|
|
60
|
-
expect(pro?.path).toBe(join(root, 'projects', 'pro', '.ai'));
|
|
61
|
-
});
|
|
62
|
-
});
|
|
63
|
-
describe('parseScanDirs', () => {
|
|
64
|
-
it('returns empty for undefined', () => {
|
|
65
|
-
expect(parseScanDirs(undefined)).toEqual([]);
|
|
66
|
-
});
|
|
67
|
-
it('returns empty for empty string', () => {
|
|
68
|
-
expect(parseScanDirs('')).toEqual([]);
|
|
69
|
-
});
|
|
70
|
-
it('parses single value', () => {
|
|
71
|
-
expect(parseScanDirs('projects')).toEqual(['projects']);
|
|
72
|
-
});
|
|
73
|
-
it('parses comma-separated values', () => {
|
|
74
|
-
expect(parseScanDirs('projects, apps')).toEqual(['projects', 'apps']);
|
|
75
|
-
});
|
|
76
|
-
it('trims whitespace', () => {
|
|
77
|
-
expect(parseScanDirs(' projects , apps ')).toEqual(['projects', 'apps']);
|
|
78
|
-
});
|
|
79
|
-
it('filters empty values', () => {
|
|
80
|
-
expect(parseScanDirs('projects,,apps')).toEqual(['projects', 'apps']);
|
|
81
|
-
});
|
|
82
|
-
});
|
|
83
|
-
//# sourceMappingURL=nodes.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"nodes.test.js","sourceRoot":"","sources":["../../src/__tests__/nodes.test.ts"],"names":[],"mappings":"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"}
|
package/dist/contracts.d.ts
DELETED
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
import type { MemoryEntry, Skill, Identity, Tool, Task, TaskFilter, RoutingResult, Label } from './types.js';
|
|
2
|
-
/**
|
|
3
|
-
* Memory provider — search and store memories.
|
|
4
|
-
* Implementation decides WHERE and HOW (files, DB, API, etc.)
|
|
5
|
-
*/
|
|
6
|
-
export interface MemoryProvider {
|
|
7
|
-
search(query: string, labels?: string[]): Promise<MemoryEntry[]>;
|
|
8
|
-
store(entry: Omit<MemoryEntry, 'source'>): Promise<void>;
|
|
9
|
-
}
|
|
10
|
-
/**
|
|
11
|
-
* Skill provider — discover and load skills.
|
|
12
|
-
* Implementation decides WHERE skills come from (files, registry, API, etc.)
|
|
13
|
-
*/
|
|
14
|
-
export interface SkillProvider {
|
|
15
|
-
list(): Promise<Skill[]>;
|
|
16
|
-
match(labels: Label[]): Promise<Skill[]>;
|
|
17
|
-
load(name: string): Promise<string | null>;
|
|
18
|
-
}
|
|
19
|
-
/**
|
|
20
|
-
* Identity provider — load identity documents.
|
|
21
|
-
* Implementation decides format and source.
|
|
22
|
-
*/
|
|
23
|
-
export interface IdentityProvider {
|
|
24
|
-
load(): Promise<Identity[]>;
|
|
25
|
-
}
|
|
26
|
-
/**
|
|
27
|
-
* Routing provider — decide which model to use.
|
|
28
|
-
* Implementation decides the logic (rules, LLM, etc.)
|
|
29
|
-
*/
|
|
30
|
-
export interface RoutingProvider {
|
|
31
|
-
route(labels: Label[], context?: Record<string, unknown>): Promise<RoutingResult>;
|
|
32
|
-
}
|
|
33
|
-
/**
|
|
34
|
-
* Task provider — CRUD for tasks.
|
|
35
|
-
* Implementation decides storage (files, Cockpit API, Jira, etc.)
|
|
36
|
-
*/
|
|
37
|
-
export interface TaskProvider {
|
|
38
|
-
list(filter?: TaskFilter): Promise<Task[]>;
|
|
39
|
-
get(id: string): Promise<Task | null>;
|
|
40
|
-
create(task: Omit<Task, 'id'>): Promise<Task>;
|
|
41
|
-
update(id: string, patch: Partial<Task>): Promise<Task>;
|
|
42
|
-
}
|
|
43
|
-
/**
|
|
44
|
-
* Tool provider — discover and match tools.
|
|
45
|
-
* Implementation decides source (MCP config, files, registry, etc.)
|
|
46
|
-
*/
|
|
47
|
-
export interface ToolProvider {
|
|
48
|
-
list(): Promise<Tool[]>;
|
|
49
|
-
match(labels: Label[]): Promise<Tool[]>;
|
|
50
|
-
load(name: string): Promise<Tool | null>;
|
|
51
|
-
}
|
|
52
|
-
/**
|
|
53
|
-
* Factory function type for creating providers from config.
|
|
54
|
-
*/
|
|
55
|
-
export type ProviderFactory<T> = (options: Record<string, unknown>) => T | Promise<T>;
|
|
56
|
-
//# sourceMappingURL=contracts.d.ts.map
|
package/dist/contracts.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"contracts.d.ts","sourceRoot":"","sources":["../src/contracts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EACX,KAAK,EACL,QAAQ,EACR,IAAI,EACJ,IAAI,EACJ,UAAU,EACV,aAAa,EACb,KAAK,EACN,MAAM,YAAY,CAAC;AAEpB;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;IACjE,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1D;AAED;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,IAAI,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;IACzB,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;IACzC,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;CAC5C;AAED;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,IAAI,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;CAC7B;AAED;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;CACnF;AAED;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B,IAAI,CAAC,MAAM,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IAC3C,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC;IACtC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9C,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACzD;AAED;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B,IAAI,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IACxB,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IACxC,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC;CAC1C;AAED;;GAEG;AACH,MAAM,MAAM,eAAe,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC"}
|
package/dist/contracts.js
DELETED
package/dist/contracts.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"contracts.js","sourceRoot":"","sources":["../src/contracts.ts"],"names":[],"mappings":""}
|
package/dist/engine.d.ts
DELETED
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
import type { MemoryProvider, SkillProvider, IdentityProvider, RoutingProvider, TaskProvider, ToolProvider } from './contracts.js';
|
|
2
|
-
import type { EnrichedContext, Identity, Skill } from './types.js';
|
|
3
|
-
import type { Logger } from './logger.js';
|
|
4
|
-
/**
|
|
5
|
-
* All providers needed by the engine.
|
|
6
|
-
*/
|
|
7
|
-
export interface Providers {
|
|
8
|
-
memory: MemoryProvider;
|
|
9
|
-
skills: SkillProvider;
|
|
10
|
-
identity: IdentityProvider;
|
|
11
|
-
routing: RoutingProvider;
|
|
12
|
-
tasks: TaskProvider;
|
|
13
|
-
tools: ToolProvider;
|
|
14
|
-
}
|
|
15
|
-
/**
|
|
16
|
-
* Cached data from boot phase. Reused across prompts.
|
|
17
|
-
*/
|
|
18
|
-
export interface BootCache {
|
|
19
|
-
identities: Identity[];
|
|
20
|
-
vocabulary: string[];
|
|
21
|
-
skills: Skill[];
|
|
22
|
-
}
|
|
23
|
-
/**
|
|
24
|
-
* Boot phase — run once per session.
|
|
25
|
-
* Loads identities, indexes skills/tools, builds label vocabulary.
|
|
26
|
-
*/
|
|
27
|
-
export declare function boot(providers: Providers, logger?: Logger): Promise<BootCache>;
|
|
28
|
-
/**
|
|
29
|
-
* Enrich a prompt — run per prompt.
|
|
30
|
-
* Calls all providers to build an EnrichedContext.
|
|
31
|
-
*/
|
|
32
|
-
export declare function enrich(prompt: string, providers: Providers, cache: BootCache, logger?: Logger): Promise<EnrichedContext>;
|
|
33
|
-
/**
|
|
34
|
-
* Learn phase — run after agent response.
|
|
35
|
-
* Stores learnings in memory.
|
|
36
|
-
*/
|
|
37
|
-
export declare function learn(response: string, providers: Providers): Promise<void>;
|
|
38
|
-
//# sourceMappingURL=engine.d.ts.map
|
package/dist/engine.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,aAAa,EACb,gBAAgB,EAChB,eAAe,EACf,YAAY,EACZ,YAAY,EACb,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,eAAe,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAG1C;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,cAAc,CAAC;IACvB,MAAM,EAAE,aAAa,CAAC;IACtB,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,OAAO,EAAE,eAAe,CAAC;IACzB,KAAK,EAAE,YAAY,CAAC;IACpB,KAAK,EAAE,YAAY,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,UAAU,EAAE,QAAQ,EAAE,CAAC;IACvB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,MAAM,EAAE,KAAK,EAAE,CAAC;CACjB;AAED;;;GAGG;AACH,wBAAsB,IAAI,CAAC,SAAS,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CA8BpF;AAED;;;GAGG;AACH,wBAAsB,MAAM,CAC1B,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,SAAS,EAChB,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,eAAe,CAAC,CA8C1B;AAED;;;GAGG;AACH,wBAAsB,KAAK,CACzB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,SAAS,GACnB,OAAO,CAAC,IAAI,CAAC,CAWf"}
|
package/dist/engine.js
DELETED
|
@@ -1,88 +0,0 @@
|
|
|
1
|
-
import { extractLabels, buildVocabulary } from './labels.js';
|
|
2
|
-
/**
|
|
3
|
-
* Boot phase — run once per session.
|
|
4
|
-
* Loads identities, indexes skills/tools, builds label vocabulary.
|
|
5
|
-
*/
|
|
6
|
-
export async function boot(providers, logger) {
|
|
7
|
-
const start = performance.now();
|
|
8
|
-
const [identities, skills, tools] = await Promise.all([
|
|
9
|
-
providers.identity.load(),
|
|
10
|
-
providers.skills.list(),
|
|
11
|
-
providers.tools.list(),
|
|
12
|
-
]);
|
|
13
|
-
// Build vocabulary from skill labels, skill triggers (excluding meta-triggers), and tool labels
|
|
14
|
-
const META_TRIGGERS = new Set(['always', 'auto', 'manual', 'boot', 'heartbeat', 'pipeline', 'audit']);
|
|
15
|
-
const skillTriggers = skills.map((s) => (s.triggers ?? []).filter((t) => !META_TRIGGERS.has(t)));
|
|
16
|
-
const vocabulary = buildVocabulary([...skills.map((s) => s.labels), ...skillTriggers], tools.map((t) => t.labels));
|
|
17
|
-
logger?.log({
|
|
18
|
-
timestamp: new Date().toISOString(),
|
|
19
|
-
level: 'info',
|
|
20
|
-
phase: 'boot',
|
|
21
|
-
event: 'boot_complete',
|
|
22
|
-
data: { identityCount: identities.length, skillCount: skills.length, vocabularySize: vocabulary.length },
|
|
23
|
-
durationMs: Math.round(performance.now() - start),
|
|
24
|
-
});
|
|
25
|
-
return { identities, vocabulary, skills };
|
|
26
|
-
}
|
|
27
|
-
/**
|
|
28
|
-
* Enrich a prompt — run per prompt.
|
|
29
|
-
* Calls all providers to build an EnrichedContext.
|
|
30
|
-
*/
|
|
31
|
-
export async function enrich(prompt, providers, cache, logger) {
|
|
32
|
-
const start = performance.now();
|
|
33
|
-
// 1. Extract labels from prompt against known vocabulary
|
|
34
|
-
const labels = extractLabels(prompt, cache.vocabulary);
|
|
35
|
-
logger?.log({
|
|
36
|
-
timestamp: new Date().toISOString(),
|
|
37
|
-
level: 'info',
|
|
38
|
-
phase: 'enrich',
|
|
39
|
-
event: 'labels_extracted',
|
|
40
|
-
data: { labels: labels.map(l => l.name), vocabularySize: cache.vocabulary.length },
|
|
41
|
-
durationMs: Math.round(performance.now() - start),
|
|
42
|
-
});
|
|
43
|
-
// 2. Search memory + match skills + match tools + route — all in parallel
|
|
44
|
-
const [memories, matchedSkills, matchedTools, routing] = await Promise.all([
|
|
45
|
-
providers.memory.search(prompt, labels.map((l) => l.name)),
|
|
46
|
-
providers.skills.match(labels),
|
|
47
|
-
providers.tools.match(labels),
|
|
48
|
-
providers.routing.route(labels),
|
|
49
|
-
]);
|
|
50
|
-
logger?.log({
|
|
51
|
-
timestamp: new Date().toISOString(),
|
|
52
|
-
level: 'info',
|
|
53
|
-
phase: 'enrich',
|
|
54
|
-
event: 'enrich_complete',
|
|
55
|
-
data: {
|
|
56
|
-
labelCount: labels.length,
|
|
57
|
-
memoryCount: memories.length,
|
|
58
|
-
skillCount: matchedSkills.length,
|
|
59
|
-
routing: routing.model,
|
|
60
|
-
},
|
|
61
|
-
durationMs: Math.round(performance.now() - start),
|
|
62
|
-
});
|
|
63
|
-
return {
|
|
64
|
-
prompt,
|
|
65
|
-
labels,
|
|
66
|
-
identities: cache.identities,
|
|
67
|
-
memories,
|
|
68
|
-
skills: matchedSkills,
|
|
69
|
-
tools: matchedTools,
|
|
70
|
-
routing,
|
|
71
|
-
};
|
|
72
|
-
}
|
|
73
|
-
/**
|
|
74
|
-
* Learn phase — run after agent response.
|
|
75
|
-
* Stores learnings in memory.
|
|
76
|
-
*/
|
|
77
|
-
export async function learn(response, providers) {
|
|
78
|
-
const MAX_LEARN_LENGTH = 500;
|
|
79
|
-
const truncated = response.length > MAX_LEARN_LENGTH
|
|
80
|
-
? response.slice(0, MAX_LEARN_LENGTH) + '…'
|
|
81
|
-
: response;
|
|
82
|
-
await providers.memory.store({
|
|
83
|
-
content: truncated,
|
|
84
|
-
type: 'log',
|
|
85
|
-
date: new Date().toISOString().slice(0, 10),
|
|
86
|
-
});
|
|
87
|
-
}
|
|
88
|
-
//# sourceMappingURL=engine.js.map
|
package/dist/engine.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"engine.js","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"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"}
|
package/dist/loader.d.ts
DELETED
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import type { DotAiConfig } from './types.js';
|
|
2
|
-
import type { Providers } from './engine.js';
|
|
3
|
-
/**
|
|
4
|
-
* Register a provider factory.
|
|
5
|
-
* Call this before createProviders().
|
|
6
|
-
*
|
|
7
|
-
* @example
|
|
8
|
-
* registerProvider('@dot-ai/cockpit-memory', (opts) => new CockpitMemory(opts.url));
|
|
9
|
-
*/
|
|
10
|
-
export declare function registerProvider(name: string, factory: (options: Record<string, unknown>) => unknown): void;
|
|
11
|
-
/**
|
|
12
|
-
* Clear all registered providers.
|
|
13
|
-
* Useful for testing.
|
|
14
|
-
*/
|
|
15
|
-
export declare function clearProviders(): void;
|
|
16
|
-
/**
|
|
17
|
-
* Register all default file-based providers.
|
|
18
|
-
* Call this at startup if you want file-based defaults available.
|
|
19
|
-
*/
|
|
20
|
-
export declare function registerDefaults(): void;
|
|
21
|
-
/**
|
|
22
|
-
* Create all providers from config.
|
|
23
|
-
* Falls back to no-op providers for any missing registration.
|
|
24
|
-
*/
|
|
25
|
-
export declare function createProviders(config: DotAiConfig): Promise<Providers>;
|
|
26
|
-
//# sourceMappingURL=loader.d.ts.map
|
package/dist/loader.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAQ,MAAM,YAAY,CAAC;AASpD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAQ7C;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,GACrD,IAAI,CAEN;AAED;;;GAGG;AACH,wBAAgB,cAAc,IAAI,IAAI,CAErC;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,IAAI,IAAI,CAIvC;AAED;;;GAGG;AACH,wBAAsB,eAAe,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,SAAS,CAAC,CAW7E"}
|
package/dist/loader.js
DELETED
|
@@ -1,120 +0,0 @@
|
|
|
1
|
-
import { resolveConfig } from './config.js';
|
|
2
|
-
/**
|
|
3
|
-
* Registry of provider factories.
|
|
4
|
-
* Adapters register their providers here before boot.
|
|
5
|
-
*/
|
|
6
|
-
const registry = new Map();
|
|
7
|
-
/**
|
|
8
|
-
* Register a provider factory.
|
|
9
|
-
* Call this before createProviders().
|
|
10
|
-
*
|
|
11
|
-
* @example
|
|
12
|
-
* registerProvider('@dot-ai/cockpit-memory', (opts) => new CockpitMemory(opts.url));
|
|
13
|
-
*/
|
|
14
|
-
export function registerProvider(name, factory) {
|
|
15
|
-
registry.set(name, factory);
|
|
16
|
-
}
|
|
17
|
-
/**
|
|
18
|
-
* Clear all registered providers.
|
|
19
|
-
* Useful for testing.
|
|
20
|
-
*/
|
|
21
|
-
export function clearProviders() {
|
|
22
|
-
registry.clear();
|
|
23
|
-
}
|
|
24
|
-
/**
|
|
25
|
-
* Register all default file-based providers.
|
|
26
|
-
* Call this at startup if you want file-based defaults available.
|
|
27
|
-
*/
|
|
28
|
-
export function registerDefaults() {
|
|
29
|
-
// Default providers are now separate packages (@dot-ai/provider-file-memory, etc.)
|
|
30
|
-
// They are resolved via auto-discovery in resolve() → tryImportProvider()
|
|
31
|
-
// No explicit registration needed — the package names match the config defaults.
|
|
32
|
-
}
|
|
33
|
-
/**
|
|
34
|
-
* Create all providers from config.
|
|
35
|
-
* Falls back to no-op providers for any missing registration.
|
|
36
|
-
*/
|
|
37
|
-
export async function createProviders(config) {
|
|
38
|
-
const resolved = resolveConfig(config);
|
|
39
|
-
return {
|
|
40
|
-
memory: await resolve(resolved.memory.use, resolved.memory.with ?? {}, noopMemory),
|
|
41
|
-
skills: await resolve(resolved.skills.use, resolved.skills.with ?? {}, noopSkills),
|
|
42
|
-
identity: await resolve(resolved.identity.use, resolved.identity.with ?? {}, noopIdentity),
|
|
43
|
-
routing: await resolve(resolved.routing.use, resolved.routing.with ?? {}, noopRouting),
|
|
44
|
-
tasks: await resolve(resolved.tasks.use, resolved.tasks.with ?? {}, noopTasks),
|
|
45
|
-
tools: await resolve(resolved.tools.use, resolved.tools.with ?? {}, noopTools),
|
|
46
|
-
};
|
|
47
|
-
}
|
|
48
|
-
async function resolve(name, options, fallback) {
|
|
49
|
-
let factory = registry.get(name);
|
|
50
|
-
if (!factory) {
|
|
51
|
-
// Auto-discovery: try dynamic import
|
|
52
|
-
factory = await tryImportProvider(name);
|
|
53
|
-
if (factory) {
|
|
54
|
-
registry.set(name, factory); // Cache for next time
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
if (!factory)
|
|
58
|
-
return fallback;
|
|
59
|
-
return factory(options);
|
|
60
|
-
}
|
|
61
|
-
/**
|
|
62
|
-
* Try to import a provider package dynamically.
|
|
63
|
-
* Looks for: default export factory, createXxxProvider function, or XxxProvider class.
|
|
64
|
-
*/
|
|
65
|
-
async function tryImportProvider(name) {
|
|
66
|
-
try {
|
|
67
|
-
const mod = await import(name);
|
|
68
|
-
// 1. Check for default export (function)
|
|
69
|
-
if (typeof mod.default === 'function') {
|
|
70
|
-
return mod.default;
|
|
71
|
-
}
|
|
72
|
-
// 2. Check for createXxxProvider factory function
|
|
73
|
-
for (const [key, value] of Object.entries(mod)) {
|
|
74
|
-
if (key.startsWith('create') && key.endsWith('Provider') && typeof value === 'function') {
|
|
75
|
-
return value;
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
// 3. Check for XxxProvider class (constructor)
|
|
79
|
-
for (const [key, value] of Object.entries(mod)) {
|
|
80
|
-
if (key.endsWith('Provider') && typeof value === 'function') {
|
|
81
|
-
return (opts) => new value(opts);
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
return undefined;
|
|
85
|
-
}
|
|
86
|
-
catch {
|
|
87
|
-
// Package not found or import error — not a problem, fall back to noop
|
|
88
|
-
return undefined;
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
// ── No-op providers (safe fallbacks) ────────────────────────────────────────
|
|
92
|
-
const noopMemory = {
|
|
93
|
-
async search(_query, _labels) { return []; },
|
|
94
|
-
async store(_entry) { },
|
|
95
|
-
};
|
|
96
|
-
const noopSkills = {
|
|
97
|
-
async list() { return []; },
|
|
98
|
-
async match(_labels) { return []; },
|
|
99
|
-
async load(_name) { return null; },
|
|
100
|
-
};
|
|
101
|
-
const noopIdentity = {
|
|
102
|
-
async load() { return []; },
|
|
103
|
-
};
|
|
104
|
-
const noopRouting = {
|
|
105
|
-
async route(_labels) { return { model: 'default', reason: 'no routing provider' }; },
|
|
106
|
-
};
|
|
107
|
-
const noopTasks = {
|
|
108
|
-
async list(_filter) { return []; },
|
|
109
|
-
async get(_id) { return null; },
|
|
110
|
-
async create(task) { return { id: crypto.randomUUID(), ...task }; },
|
|
111
|
-
async update(id, patch) {
|
|
112
|
-
return { id, text: '', status: '', ...patch };
|
|
113
|
-
},
|
|
114
|
-
};
|
|
115
|
-
const noopTools = {
|
|
116
|
-
async list() { return []; },
|
|
117
|
-
async match(_labels) { return []; },
|
|
118
|
-
async load(_name) { return null; },
|
|
119
|
-
};
|
|
120
|
-
//# sourceMappingURL=loader.js.map
|
package/dist/loader.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"loader.js","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C;;;GAGG;AACH,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAyD,CAAC;AAElF;;;;;;GAMG;AACH,MAAM,UAAU,gBAAgB,CAC9B,IAAY,EACZ,OAAsD;IAEtD,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AAC9B,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,cAAc;IAC5B,QAAQ,CAAC,KAAK,EAAE,CAAC;AACnB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,gBAAgB;IAC9B,mFAAmF;IACnF,0EAA0E;IAC1E,iFAAiF;AACnF,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,MAAmB;IACvD,MAAM,QAAQ,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;IAEvC,OAAO;QACL,MAAM,EAAE,MAAM,OAAO,CAAiB,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAE,QAAQ,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,EAAE,UAAU,CAAC;QAClG,MAAM,EAAE,MAAM,OAAO,CAAgB,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAE,QAAQ,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,EAAE,UAAU,CAAC;QACjG,QAAQ,EAAE,MAAM,OAAO,CAAmB,QAAQ,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC,QAAQ,CAAC,IAAI,IAAI,EAAE,EAAE,YAAY,CAAC;QAC5G,OAAO,EAAE,MAAM,OAAO,CAAkB,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,QAAQ,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE,EAAE,WAAW,CAAC;QACvG,KAAK,EAAE,MAAM,OAAO,CAAe,QAAQ,CAAC,KAAK,CAAC,GAAG,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,EAAE,SAAS,CAAC;QAC5F,KAAK,EAAE,MAAM,OAAO,CAAe,QAAQ,CAAC,KAAK,CAAC,GAAG,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,EAAE,SAAS,CAAC;KAC7F,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,OAAO,CAAI,IAAY,EAAE,OAAgC,EAAE,QAAW;IACnF,IAAI,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAEjC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,qCAAqC;QACrC,OAAO,GAAG,MAAM,iBAAiB,CAAC,IAAI,CAAC,CAAC;QACxC,IAAI,OAAO,EAAE,CAAC;YACZ,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,sBAAsB;QACrD,CAAC;IACH,CAAC;IAED,IAAI,CAAC,OAAO;QAAE,OAAO,QAAQ,CAAC;IAC9B,OAAO,OAAO,CAAC,OAAO,CAAM,CAAC;AAC/B,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,iBAAiB,CAC9B,IAAY;IAEZ,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC;QAE/B,yCAAyC;QACzC,IAAI,OAAO,GAAG,CAAC,OAAO,KAAK,UAAU,EAAE,CAAC;YACtC,OAAO,GAAG,CAAC,OAAwD,CAAC;QACtE,CAAC;QAED,kDAAkD;QAClD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YAC/C,IAAI,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE,CAAC;gBACxF,OAAO,KAAsD,CAAC;YAChE,CAAC;QACH,CAAC;QAED,+CAA+C;QAC/C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YAC/C,IAAI,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE,CAAC;gBAC5D,OAAO,CAAC,IAA6B,EAAE,EAAE,CAAC,IAAK,KAAwD,CAAC,IAAI,CAAC,CAAC;YAChH,CAAC;QACH,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAAC,MAAM,CAAC;QACP,uEAAuE;QACvE,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED,+EAA+E;AAE/E,MAAM,UAAU,GAAmB;IACjC,KAAK,CAAC,MAAM,CAAC,MAAc,EAAE,OAAkB,IAAI,OAAO,EAAE,CAAC,CAAC,CAAC;IAC/D,KAAK,CAAC,KAAK,CAAC,MAAM,IAAG,CAAC;CACvB,CAAC;AAEF,MAAM,UAAU,GAAkB;IAChC,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC,CAAC,CAAC;IAC3B,KAAK,CAAC,KAAK,CAAC,OAAO,IAAI,OAAO,EAAE,CAAC,CAAC,CAAC;IACnC,KAAK,CAAC,IAAI,CAAC,KAAa,IAAI,OAAO,IAAI,CAAC,CAAC,CAAC;CAC3C,CAAC;AAEF,MAAM,YAAY,GAAqB;IACrC,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC,CAAC,CAAC;CAC5B,CAAC;AAEF,MAAM,WAAW,GAAoB;IACnC,KAAK,CAAC,KAAK,CAAC,OAAO,IAAI,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,qBAAqB,EAAE,CAAC,CAAC,CAAC;CACrF,CAAC;AAEF,MAAM,SAAS,GAAiB;IAC9B,KAAK,CAAC,IAAI,CAAC,OAAQ,IAAI,OAAO,EAAE,CAAC,CAAC,CAAC;IACnC,KAAK,CAAC,GAAG,CAAC,GAAW,IAAI,OAAO,IAAI,CAAC,CAAC,CAAC;IACvC,KAAK,CAAC,MAAM,CAAC,IAAI,IAAmB,OAAO,EAAE,EAAE,EAAE,MAAM,CAAC,UAAU,EAAE,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC;IAClF,KAAK,CAAC,MAAM,CAAC,EAAU,EAAE,KAAoB;QAC3C,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,KAAK,EAAE,CAAC;IAChD,CAAC;CACF,CAAC;AAEF,MAAM,SAAS,GAAiB;IAC9B,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC,CAAC,CAAC;IAC3B,KAAK,CAAC,KAAK,CAAC,OAAO,IAAI,OAAO,EAAE,CAAC,CAAC,CAAC;IACnC,KAAK,CAAC,IAAI,CAAC,KAAa,IAAI,OAAO,IAAI,CAAC,CAAC,CAAC;CAC3C,CAAC"}
|