@dot-ai/core 0.9.0 → 0.11.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.
Files changed (50) hide show
  1. package/dist/boot-cache.d.ts +1 -1
  2. package/dist/boot-cache.d.ts.map +1 -1
  3. package/dist/extension-api.d.ts +10 -9
  4. package/dist/extension-api.d.ts.map +1 -1
  5. package/dist/extension-loader.d.ts +9 -2
  6. package/dist/extension-loader.d.ts.map +1 -1
  7. package/dist/extension-loader.js +179 -55
  8. package/dist/extension-loader.js.map +1 -1
  9. package/dist/extension-runner.d.ts +9 -4
  10. package/dist/extension-runner.d.ts.map +1 -1
  11. package/dist/extension-runner.js +34 -13
  12. package/dist/extension-runner.js.map +1 -1
  13. package/dist/extension-types.d.ts +15 -115
  14. package/dist/extension-types.d.ts.map +1 -1
  15. package/dist/extension-types.js +1 -88
  16. package/dist/extension-types.js.map +1 -1
  17. package/dist/format.d.ts +21 -0
  18. package/dist/format.d.ts.map +1 -1
  19. package/dist/format.js +74 -0
  20. package/dist/format.js.map +1 -1
  21. package/dist/index.d.ts +6 -7
  22. package/dist/index.d.ts.map +1 -1
  23. package/dist/index.js +3 -4
  24. package/dist/index.js.map +1 -1
  25. package/dist/package-manager.d.ts +28 -5
  26. package/dist/package-manager.d.ts.map +1 -1
  27. package/dist/package-manager.js +126 -20
  28. package/dist/package-manager.js.map +1 -1
  29. package/dist/runtime.d.ts +31 -43
  30. package/dist/runtime.d.ts.map +1 -1
  31. package/dist/runtime.js +79 -177
  32. package/dist/runtime.js.map +1 -1
  33. package/package.json +1 -1
  34. package/src/__tests__/extension-loader.test.ts +154 -11
  35. package/src/__tests__/extension-runner.test.ts +245 -32
  36. package/src/__tests__/fixtures/extensions/ctx-aware.js +12 -3
  37. package/src/__tests__/fixtures/extensions/smart-context.js +12 -3
  38. package/src/__tests__/format.test.ts +178 -1
  39. package/src/__tests__/package-manager.test.ts +237 -0
  40. package/src/__tests__/runtime.test.ts +38 -10
  41. package/src/boot-cache.ts +1 -1
  42. package/src/extension-api.ts +10 -15
  43. package/src/extension-loader.ts +187 -57
  44. package/src/extension-runner.ts +44 -15
  45. package/src/extension-types.ts +26 -195
  46. package/src/format.ts +100 -0
  47. package/src/index.ts +5 -13
  48. package/src/package-manager.ts +146 -23
  49. package/src/runtime.ts +96 -222
  50. package/tsconfig.tsbuildinfo +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"package-manager.d.ts","sourceRoot":"","sources":["../src/package-manager.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE;QACN,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;QACtB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;QAClB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;KACtB,CAAC;CACH;AAED;;GAEG;AACH,wBAAsB,OAAO,CAC3B,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,WAAW,CAAC,CActB;AAED;;GAEG;AACH,wBAAsB,MAAM,CAC1B,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,IAAI,CAAC,CAMf;AAED;;GAEG;AACH,wBAAsB,YAAY,CAChC,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,WAAW,EAAE,CAAC,CAuBxB;AAED;;GAEG;AACH,wBAAsB,eAAe,CACnC,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC;IAAE,UAAU,EAAE,MAAM,EAAE,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAC;IAAC,SAAS,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,CAqB1E"}
1
+ {"version":3,"file":"package-manager.d.ts","sourceRoot":"","sources":["../src/package-manager.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE;QACN,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;QACtB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;QAClB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;KACtB,CAAC;CACH;AAED,MAAM,MAAM,oBAAoB,GAAG,SAAS,GAAG,MAAM,GAAG,OAAO,CAAC;AAgEhE;;;;GAIG;AACH,wBAAsB,OAAO,CAC3B,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,WAAW,CAAC,CAMtB;AAED;;GAEG;AACH,wBAAsB,MAAM,CAC1B,IAAI,EAAE,MAAM,EACZ,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,IAAI,CAAC,CAMf;AAED;;GAEG;AACH,wBAAsB,YAAY,CAChC,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,WAAW,EAAE,CAAC,CAuBxB;AAED;;GAEG;AACH,wBAAsB,eAAe,CACnC,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC;IAAE,UAAU,EAAE,MAAM,EAAE,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAC;IAAC,SAAS,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,CAqB1E;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,uBAAuB,CAC3C,aAAa,EAAE,MAAM,EACrB,QAAQ,EAAE,MAAM,EAAE,EAClB,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,oBAAoB,CAAC,GAC5D,OAAO,CAAC;IAAE,SAAS,EAAE,MAAM,EAAE,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAC;IAAC,MAAM,EAAE,KAAK,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,CAAC,CA8CvG"}
@@ -1,27 +1,80 @@
1
1
  import { execSync } from 'node:child_process';
2
- import { readFile, mkdir } from 'node:fs/promises';
3
- import { join } from 'node:path';
2
+ import { readFile, mkdir, writeFile } from 'node:fs/promises';
3
+ import { existsSync } from 'node:fs';
4
+ import { join, resolve } from 'node:path';
4
5
  /**
5
- * Install a dot-ai package from npm or git.
6
+ * Parse a package source string into name and spec.
7
+ *
8
+ * Supported formats:
9
+ * - "npm:@dot-ai/ext-memory@1.0.0" → { name: "@dot-ai/ext-memory", spec: "@dot-ai/ext-memory@1.0.0" }
10
+ * - "npm:@dot-ai/ext-memory" → { name: "@dot-ai/ext-memory", spec: "@dot-ai/ext-memory" }
11
+ * - "@dot-ai/ext-memory@1.0.0" → { name: "@dot-ai/ext-memory", spec: "@dot-ai/ext-memory@1.0.0" }
12
+ * - "@dot-ai/ext-memory" → { name: "@dot-ai/ext-memory", spec: "@dot-ai/ext-memory" }
6
13
  */
7
- export async function install(source, targetDir) {
8
- const installDir = join(targetDir, '.ai', 'packages');
14
+ function parsePackageSource(source) {
15
+ // Strip npm: prefix
16
+ const raw = source.startsWith('npm:') ? source.slice(4) : source;
17
+ // Extract name (without version) for scoped packages
18
+ if (raw.startsWith('@')) {
19
+ // @scope/name@version → name = @scope/name
20
+ const slashIdx = raw.indexOf('/');
21
+ if (slashIdx === -1)
22
+ return { name: raw, spec: raw };
23
+ const afterSlash = raw.slice(slashIdx + 1);
24
+ const atIdx = afterSlash.indexOf('@');
25
+ if (atIdx === -1)
26
+ return { name: raw, spec: raw };
27
+ return { name: raw.slice(0, slashIdx + 1 + atIdx), spec: raw };
28
+ }
29
+ // name@version → name = name
30
+ const atIdx = raw.indexOf('@');
31
+ if (atIdx === -1)
32
+ return { name: raw, spec: raw };
33
+ return { name: raw.slice(0, atIdx), spec: raw };
34
+ }
35
+ /**
36
+ * Get the install directory for packages.
37
+ */
38
+ function getInstallDir(workspaceRoot) {
39
+ return join(workspaceRoot, '.ai', 'packages');
40
+ }
41
+ /**
42
+ * Check if a package is already installed in .ai/packages/.
43
+ */
44
+ function isPackageInstalled(installDir, name) {
45
+ return existsSync(join(installDir, 'node_modules', name, 'package.json'));
46
+ }
47
+ /**
48
+ * Install a single npm package into .ai/packages/.
49
+ */
50
+ async function installNpm(spec, installDir) {
9
51
  await mkdir(installDir, { recursive: true });
10
- execSync(`npm install --prefix "${installDir}" "${source}"`, {
52
+ // Ensure package.json exists (npm --prefix needs it)
53
+ const pkgJsonPath = join(installDir, 'package.json');
54
+ if (!existsSync(pkgJsonPath)) {
55
+ await writeFile(pkgJsonPath, JSON.stringify({ private: true, dependencies: {} }, null, 2) + '\n');
56
+ }
57
+ execSync(`npm install --prefix "${installDir}" "${spec}"`, {
11
58
  stdio: 'pipe',
12
59
  timeout: 60000,
13
60
  });
14
- // Read installed package info
15
- const name = source.startsWith('@') || !source.includes('/')
16
- ? source.replace(/@[^/]*$/, '')
17
- : source;
61
+ }
62
+ /**
63
+ * Install a dot-ai package from npm.
64
+ *
65
+ * Installs into `.ai/packages/node_modules/`.
66
+ */
67
+ export async function install(source, workspaceRoot) {
68
+ const installDir = getInstallDir(workspaceRoot);
69
+ const { name, spec } = parsePackageSource(source);
70
+ await installNpm(spec, installDir);
18
71
  return readPackageInfo(installDir, name);
19
72
  }
20
73
  /**
21
74
  * Remove an installed package.
22
75
  */
23
- export async function remove(name, targetDir) {
24
- const installDir = join(targetDir, '.ai', 'packages');
76
+ export async function remove(name, workspaceRoot) {
77
+ const installDir = getInstallDir(workspaceRoot);
25
78
  execSync(`npm uninstall --prefix "${installDir}" "${name}"`, {
26
79
  stdio: 'pipe',
27
80
  timeout: 60000,
@@ -30,8 +83,8 @@ export async function remove(name, targetDir) {
30
83
  /**
31
84
  * List installed dot-ai packages.
32
85
  */
33
- export async function listPackages(targetDir) {
34
- const installDir = join(targetDir, '.ai', 'packages');
86
+ export async function listPackages(workspaceRoot) {
87
+ const installDir = getInstallDir(workspaceRoot);
35
88
  const pkgJsonPath = join(installDir, 'package.json');
36
89
  try {
37
90
  const raw = await readFile(pkgJsonPath, 'utf-8');
@@ -58,22 +111,75 @@ export async function listPackages(targetDir) {
58
111
  /**
59
112
  * Resolve dot-ai manifest from installed packages.
60
113
  */
61
- export async function resolvePackages(targetDir) {
62
- const packages = await listPackages(targetDir);
114
+ export async function resolvePackages(workspaceRoot) {
115
+ const packages = await listPackages(workspaceRoot);
63
116
  const result = { extensions: [], skills: [], providers: [] };
64
- const installDir = join(targetDir, '.ai', 'packages');
117
+ const installDir = getInstallDir(workspaceRoot);
65
118
  for (const pkg of packages) {
66
119
  if (!pkg.dotAi)
67
120
  continue;
68
121
  const pkgDir = join(installDir, 'node_modules', pkg.name);
69
122
  if (pkg.dotAi.extensions) {
70
- result.extensions.push(...pkg.dotAi.extensions.map(e => join(pkgDir, e)));
123
+ result.extensions.push(...pkg.dotAi.extensions.map(e => resolve(pkgDir, e)));
71
124
  }
72
125
  if (pkg.dotAi.skills) {
73
- result.skills.push(...pkg.dotAi.skills.map(s => join(pkgDir, s)));
126
+ result.skills.push(...pkg.dotAi.skills.map(s => resolve(pkgDir, s)));
74
127
  }
75
128
  if (pkg.dotAi.providers) {
76
- result.providers.push(...pkg.dotAi.providers.map(p => join(pkgDir, p)));
129
+ result.providers.push(...pkg.dotAi.providers.map(p => resolve(pkgDir, p)));
130
+ }
131
+ }
132
+ return result;
133
+ }
134
+ /**
135
+ * Ensure all packages from settings.json are installed.
136
+ *
137
+ * Like Pi's `resolvePackageSources()` with auto-install:
138
+ * - Reads the `packages` array from settings.json config
139
+ * - For each package, checks if it's already installed in `.ai/packages/`
140
+ * - If not installed, auto-installs it via npm
141
+ * - The `onMissing` callback allows callers to control behavior (install/skip/error)
142
+ *
143
+ * This should be called BEFORE `discoverExtensions()` in the boot flow,
144
+ * so that installed packages are available for extension discovery.
145
+ */
146
+ export async function ensurePackagesInstalled(workspaceRoot, packages, onMissing) {
147
+ const installDir = getInstallDir(workspaceRoot);
148
+ const result = {
149
+ installed: [],
150
+ skipped: [],
151
+ errors: [],
152
+ };
153
+ for (const source of packages) {
154
+ const { name, spec } = parsePackageSource(source);
155
+ // Already installed? Skip.
156
+ if (isPackageInstalled(installDir, name)) {
157
+ result.skipped.push(source);
158
+ continue;
159
+ }
160
+ // Determine action for missing package
161
+ let action = 'install';
162
+ if (onMissing) {
163
+ action = await onMissing(source);
164
+ }
165
+ if (action === 'skip') {
166
+ result.skipped.push(source);
167
+ continue;
168
+ }
169
+ if (action === 'error') {
170
+ result.errors.push({ source, error: `Missing package: ${source}` });
171
+ continue;
172
+ }
173
+ // Auto-install
174
+ try {
175
+ await installNpm(spec, installDir);
176
+ result.installed.push(source);
177
+ }
178
+ catch (err) {
179
+ result.errors.push({
180
+ source,
181
+ error: err instanceof Error ? err.message : String(err),
182
+ });
77
183
  }
78
184
  }
79
185
  return result;
@@ -1 +1 @@
1
- {"version":3,"file":"package-manager.js","sourceRoot":"","sources":["../src/package-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAYjC;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,OAAO,CAC3B,MAAc,EACd,SAAiB;IAEjB,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;IACtD,MAAM,KAAK,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAE7C,QAAQ,CAAC,yBAAyB,UAAU,MAAM,MAAM,GAAG,EAAE;QAC3D,KAAK,EAAE,MAAM;QACb,OAAO,EAAE,KAAK;KACf,CAAC,CAAC;IAEH,8BAA8B;IAC9B,MAAM,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC;QAC1D,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC;QAC/B,CAAC,CAAC,MAAM,CAAC;IACX,OAAO,eAAe,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;AAC3C,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,MAAM,CAC1B,IAAY,EACZ,SAAiB;IAEjB,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;IACtD,QAAQ,CAAC,2BAA2B,UAAU,MAAM,IAAI,GAAG,EAAE;QAC3D,KAAK,EAAE,MAAM;QACb,OAAO,EAAE,KAAK;KACf,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,SAAiB;IAEjB,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;IACtD,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;IAErD,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QACjD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAA4B,CAAC;QACvD,MAAM,IAAI,GAAG,GAAG,CAAC,YAAkD,CAAC;QACpE,IAAI,CAAC,IAAI;YAAE,OAAO,EAAE,CAAC;QAErB,MAAM,QAAQ,GAAkB,EAAE,CAAC;QACnC,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACrC,IAAI,CAAC;gBACH,MAAM,IAAI,GAAG,MAAM,eAAe,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;gBACrD,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACtB,CAAC;YAAC,MAAM,CAAC;gBACP,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC/C,CAAC;QACH,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,SAAiB;IAEjB,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,SAAS,CAAC,CAAC;IAC/C,MAAM,MAAM,GAAG,EAAE,UAAU,EAAE,EAAc,EAAE,MAAM,EAAE,EAAc,EAAE,SAAS,EAAE,EAAc,EAAE,CAAC;IAEjG,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;IACtD,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;QAC3B,IAAI,CAAC,GAAG,CAAC,KAAK;YAAE,SAAS;QACzB,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE,cAAc,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;QAE1D,IAAI,GAAG,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;YACzB,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5E,CAAC;QACD,IAAI,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;YACrB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QACpE,CAAC;QACD,IAAI,GAAG,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;YACxB,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1E,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,KAAK,UAAU,eAAe,CAAC,UAAkB,EAAE,IAAY;IAC7D,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,cAAc,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC;IACvE,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC7C,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAA4B,CAAC;IAEvD,OAAO;QACL,IAAI,EAAE,GAAG,CAAC,IAAc;QACxB,OAAO,EAAE,GAAG,CAAC,OAAiB;QAC9B,KAAK,EAAE,GAAG,CAAC,QAAQ,CAAyB;KAC7C,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"package-manager.js","sourceRoot":"","sources":["../src/package-manager.ts"],"names":[],"mappings":"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"}
package/dist/runtime.d.ts CHANGED
@@ -1,44 +1,36 @@
1
- import type { FormatOptions } from './format.js';
2
1
  import type { Capability } from './capabilities.js';
3
2
  import { ExtensionRunner } from './extension-runner.js';
4
- import type { ToolCallEvent, ToolCallResult, ExtensionDiagnostic, Section, RouteResult, CommandDefinition } from './extension-types.js';
5
- import type { EnrichedContext, ExtensionsConfig, Label } from './types.js';
3
+ import type { ToolCallEvent, ToolCallResult, ExtensionDiagnostic, Section, RouteResult, CommandDefinition, ToolDefinition } from './extension-types.js';
4
+ import type { Label, Skill, Identity, ExtensionsConfig } from './types.js';
6
5
  import type { Logger } from './logger.js';
7
6
  export interface RuntimeOptions {
8
7
  /** Workspace root directory (contains .ai/) */
9
8
  workspaceRoot: string;
10
9
  /** Optional logger */
11
10
  logger?: Logger;
12
- /** Skip identity sections in formatted output (useful when adapter injects them separately) */
13
- skipIdentities?: boolean;
14
- /** Max skills in formatted output */
15
- maxSkills?: number;
16
- /** Max chars per skill */
17
- maxSkillLength?: number;
18
11
  /** Token budget for formatted output */
19
12
  tokenBudget?: number;
20
13
  /** Extension configuration */
21
14
  extensions?: ExtensionsConfig;
22
15
  }
16
+ /**
17
+ * v7 ProcessResult — structured data only.
18
+ * Adapters handle formatting via formatSections() utility.
19
+ */
23
20
  export interface ProcessResult {
24
- /** The formatted context string ready for injection */
25
- formatted: string;
26
- /** The enriched context (for adapters that need raw data) */
27
- enriched: EnrichedContext;
28
- /** Interactive capabilities built from extensions */
29
- capabilities: Capability[];
30
- /** Routing result from route event */
31
- routing?: RouteResult | null;
21
+ /** Sections collected from extensions, sorted by priority DESC */
22
+ sections: Section[];
32
23
  /** Matched labels */
33
- labels?: Label[];
34
- /** Sections collected from extensions */
35
- sections?: Section[];
24
+ labels: Label[];
25
+ /** Routing result from route event */
26
+ routing: RouteResult | null;
36
27
  }
37
28
  export interface RuntimeDiagnostics {
38
29
  extensions: ExtensionDiagnostic[];
39
- usedTiers: string[];
40
30
  capabilityCount: number;
41
31
  vocabularySize: number;
32
+ skillCount: number;
33
+ identityCount: number;
42
34
  }
43
35
  /**
44
36
  * DotAiRuntime — encapsulates the full extension-based pipeline lifecycle.
@@ -55,7 +47,7 @@ export declare class DotAiRuntime {
55
47
  constructor(options: RuntimeOptions);
56
48
  private buildCtx;
57
49
  /**
58
- * Boot the runtime — loads config, discovers extensions, fires lifecycle events.
50
+ * Boot the runtime — loads config, discovers extensions, builds vocabulary from registrations.
59
51
  * Call once per session. Safe to call multiple times (idempotent).
60
52
  */
61
53
  boot(): Promise<void>;
@@ -67,16 +59,20 @@ export declare class DotAiRuntime {
67
59
  * Process a prompt through the pipeline:
68
60
  * 1. Extract labels (core regex + label_extract chain-transform)
69
61
  * 2. Route (first-result)
70
- * 3. Context enrich (collect-sections)
71
- * 4. Assemble sections by priority
72
- * 5. Apply token budget trimming
62
+ * 3. Context enrich (collect-sections) + core system section
63
+ * 4. Sort sections by priority DESC
64
+ *
65
+ * Returns structured data. Adapters call formatSections() to get markdown.
73
66
  */
74
- processPrompt(prompt: string, formatOverrides?: Partial<FormatOptions>): Promise<ProcessResult>;
67
+ processPrompt(prompt: string): Promise<ProcessResult>;
75
68
  /**
76
- * Learn from agent response fires agent_end event.
77
- * Memory extensions handle storage in their handlers.
69
+ * Execute a registered tool by name.
78
70
  */
79
- learn(response: string): Promise<void>;
71
+ executeTool(name: string, input: Record<string, unknown>): Promise<{
72
+ content: string;
73
+ details?: unknown;
74
+ isError?: boolean;
75
+ }>;
80
76
  /**
81
77
  * Fire an event (for adapters to call on agent-native events).
82
78
  */
@@ -99,21 +95,13 @@ export declare class DotAiRuntime {
99
95
  get runner(): ExtensionRunner | null;
100
96
  /** Get registered commands from extensions */
101
97
  get commands(): CommandDefinition[];
98
+ /** Get registered skills from extensions */
99
+ get skills(): Skill[];
100
+ /** Get registered identities from extensions */
101
+ get identities(): Identity[];
102
+ /** Get registered tools from extensions */
103
+ get tools(): ToolDefinition[];
102
104
  /** Get diagnostics including extensions */
103
105
  get diagnostics(): RuntimeDiagnostics;
104
- /**
105
- * Assemble sorted sections into a single markdown string.
106
- */
107
- private assembleSections;
108
- /**
109
- * Trim sections to fit within a token budget.
110
- * Respects trimStrategy: 'never' sections are never removed.
111
- */
112
- private trimSections;
113
- /**
114
- * Build a backward-compatible EnrichedContext from pipeline output.
115
- * Adapters that log enriched fields still work.
116
- */
117
- private buildEnrichedFromSections;
118
106
  }
119
107
  //# sourceMappingURL=runtime.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"}