@soleri/core 9.5.0 → 9.6.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 (192) hide show
  1. package/dist/adapters/claude-code-adapter.d.ts +27 -0
  2. package/dist/adapters/claude-code-adapter.d.ts.map +1 -0
  3. package/dist/adapters/claude-code-adapter.js +111 -0
  4. package/dist/adapters/claude-code-adapter.js.map +1 -0
  5. package/dist/adapters/index.d.ts +9 -0
  6. package/dist/adapters/index.d.ts.map +1 -0
  7. package/dist/adapters/index.js +10 -0
  8. package/dist/adapters/index.js.map +1 -0
  9. package/dist/adapters/registry.d.ts +21 -0
  10. package/dist/adapters/registry.d.ts.map +1 -0
  11. package/dist/adapters/registry.js +44 -0
  12. package/dist/adapters/registry.js.map +1 -0
  13. package/dist/adapters/types.d.ts +93 -0
  14. package/dist/adapters/types.d.ts.map +1 -0
  15. package/dist/adapters/types.js +10 -0
  16. package/dist/adapters/types.js.map +1 -0
  17. package/dist/brain/brain.d.ts +12 -1
  18. package/dist/brain/brain.d.ts.map +1 -1
  19. package/dist/brain/brain.js +106 -44
  20. package/dist/brain/brain.js.map +1 -1
  21. package/dist/brain/intelligence.d.ts.map +1 -1
  22. package/dist/brain/intelligence.js +36 -30
  23. package/dist/brain/intelligence.js.map +1 -1
  24. package/dist/chat/agent-loop.js +1 -1
  25. package/dist/chat/agent-loop.js.map +1 -1
  26. package/dist/chat/notifications.d.ts.map +1 -1
  27. package/dist/chat/notifications.js +4 -0
  28. package/dist/chat/notifications.js.map +1 -1
  29. package/dist/control/intent-router.d.ts +1 -0
  30. package/dist/control/intent-router.d.ts.map +1 -1
  31. package/dist/control/intent-router.js +11 -5
  32. package/dist/control/intent-router.js.map +1 -1
  33. package/dist/curator/curator.d.ts +4 -0
  34. package/dist/curator/curator.d.ts.map +1 -1
  35. package/dist/curator/curator.js +141 -27
  36. package/dist/curator/curator.js.map +1 -1
  37. package/dist/index.d.ts +14 -1
  38. package/dist/index.d.ts.map +1 -1
  39. package/dist/index.js +12 -1
  40. package/dist/index.js.map +1 -1
  41. package/dist/llm/llm-client.d.ts.map +1 -1
  42. package/dist/llm/llm-client.js +1 -0
  43. package/dist/llm/llm-client.js.map +1 -1
  44. package/dist/packs/index.d.ts +3 -2
  45. package/dist/packs/index.d.ts.map +1 -1
  46. package/dist/packs/index.js +3 -2
  47. package/dist/packs/index.js.map +1 -1
  48. package/dist/packs/lockfile.d.ts +23 -1
  49. package/dist/packs/lockfile.d.ts.map +1 -1
  50. package/dist/packs/lockfile.js +50 -4
  51. package/dist/packs/lockfile.js.map +1 -1
  52. package/dist/packs/pack-installer.d.ts +10 -0
  53. package/dist/packs/pack-installer.d.ts.map +1 -1
  54. package/dist/packs/pack-installer.js +69 -2
  55. package/dist/packs/pack-installer.js.map +1 -1
  56. package/dist/packs/pack-lifecycle.d.ts +50 -0
  57. package/dist/packs/pack-lifecycle.d.ts.map +1 -0
  58. package/dist/packs/pack-lifecycle.js +91 -0
  59. package/dist/packs/pack-lifecycle.js.map +1 -0
  60. package/dist/packs/types.d.ts +64 -44
  61. package/dist/packs/types.d.ts.map +1 -1
  62. package/dist/packs/types.js +9 -0
  63. package/dist/packs/types.js.map +1 -1
  64. package/dist/persistence/sqlite-provider.d.ts +5 -1
  65. package/dist/persistence/sqlite-provider.d.ts.map +1 -1
  66. package/dist/persistence/sqlite-provider.js +22 -2
  67. package/dist/persistence/sqlite-provider.js.map +1 -1
  68. package/dist/planning/github-projection.d.ts +8 -8
  69. package/dist/planning/github-projection.d.ts.map +1 -1
  70. package/dist/planning/github-projection.js +42 -42
  71. package/dist/planning/github-projection.js.map +1 -1
  72. package/dist/plugins/types.d.ts +21 -21
  73. package/dist/queue/pipeline-runner.d.ts.map +1 -1
  74. package/dist/queue/pipeline-runner.js +4 -0
  75. package/dist/queue/pipeline-runner.js.map +1 -1
  76. package/dist/runtime/curator-extra-ops.d.ts.map +1 -1
  77. package/dist/runtime/curator-extra-ops.js +9 -1
  78. package/dist/runtime/curator-extra-ops.js.map +1 -1
  79. package/dist/runtime/facades/memory-facade.d.ts.map +1 -1
  80. package/dist/runtime/facades/memory-facade.js +169 -0
  81. package/dist/runtime/facades/memory-facade.js.map +1 -1
  82. package/dist/runtime/orchestrate-ops.d.ts.map +1 -1
  83. package/dist/runtime/orchestrate-ops.js +133 -4
  84. package/dist/runtime/orchestrate-ops.js.map +1 -1
  85. package/dist/runtime/runtime.d.ts.map +1 -1
  86. package/dist/runtime/runtime.js +128 -90
  87. package/dist/runtime/runtime.js.map +1 -1
  88. package/dist/runtime/session-briefing.d.ts.map +1 -1
  89. package/dist/runtime/session-briefing.js +44 -11
  90. package/dist/runtime/session-briefing.js.map +1 -1
  91. package/dist/runtime/shutdown-registry.d.ts +36 -0
  92. package/dist/runtime/shutdown-registry.d.ts.map +1 -0
  93. package/dist/runtime/shutdown-registry.js +74 -0
  94. package/dist/runtime/shutdown-registry.js.map +1 -0
  95. package/dist/runtime/types.d.ts +10 -1
  96. package/dist/runtime/types.d.ts.map +1 -1
  97. package/dist/subagent/concurrency-manager.d.ts +29 -0
  98. package/dist/subagent/concurrency-manager.d.ts.map +1 -0
  99. package/dist/subagent/concurrency-manager.js +73 -0
  100. package/dist/subagent/concurrency-manager.js.map +1 -0
  101. package/dist/subagent/dispatcher.d.ts +41 -0
  102. package/dist/subagent/dispatcher.d.ts.map +1 -0
  103. package/dist/subagent/dispatcher.js +259 -0
  104. package/dist/subagent/dispatcher.js.map +1 -0
  105. package/dist/subagent/index.d.ts +14 -0
  106. package/dist/subagent/index.d.ts.map +1 -0
  107. package/dist/subagent/index.js +15 -0
  108. package/dist/subagent/index.js.map +1 -0
  109. package/dist/subagent/orphan-reaper.d.ts +37 -0
  110. package/dist/subagent/orphan-reaper.d.ts.map +1 -0
  111. package/dist/subagent/orphan-reaper.js +71 -0
  112. package/dist/subagent/orphan-reaper.js.map +1 -0
  113. package/dist/subagent/result-aggregator.d.ts +7 -0
  114. package/dist/subagent/result-aggregator.d.ts.map +1 -0
  115. package/dist/subagent/result-aggregator.js +57 -0
  116. package/dist/subagent/result-aggregator.js.map +1 -0
  117. package/dist/subagent/task-checkout.d.ts +36 -0
  118. package/dist/subagent/task-checkout.d.ts.map +1 -0
  119. package/dist/subagent/task-checkout.js +52 -0
  120. package/dist/subagent/task-checkout.js.map +1 -0
  121. package/dist/subagent/types.d.ts +114 -0
  122. package/dist/subagent/types.d.ts.map +1 -0
  123. package/dist/subagent/types.js +9 -0
  124. package/dist/subagent/types.js.map +1 -0
  125. package/dist/subagent/workspace-resolver.d.ts +35 -0
  126. package/dist/subagent/workspace-resolver.d.ts.map +1 -0
  127. package/dist/subagent/workspace-resolver.js +99 -0
  128. package/dist/subagent/workspace-resolver.js.map +1 -0
  129. package/dist/transport/http-server.d.ts.map +1 -1
  130. package/dist/transport/http-server.js +49 -3
  131. package/dist/transport/http-server.js.map +1 -1
  132. package/dist/transport/ws-server.d.ts.map +1 -1
  133. package/dist/transport/ws-server.js +7 -0
  134. package/dist/transport/ws-server.js.map +1 -1
  135. package/dist/vault/linking.d.ts +3 -4
  136. package/dist/vault/linking.d.ts.map +1 -1
  137. package/dist/vault/linking.js +79 -32
  138. package/dist/vault/linking.js.map +1 -1
  139. package/dist/vault/vault-maintenance.d.ts.map +1 -1
  140. package/dist/vault/vault-maintenance.js +7 -14
  141. package/dist/vault/vault-maintenance.js.map +1 -1
  142. package/dist/vault/vault-memories.d.ts.map +1 -1
  143. package/dist/vault/vault-memories.js +19 -9
  144. package/dist/vault/vault-memories.js.map +1 -1
  145. package/dist/vault/vault-schema.d.ts +1 -0
  146. package/dist/vault/vault-schema.d.ts.map +1 -1
  147. package/dist/vault/vault-schema.js +20 -0
  148. package/dist/vault/vault-schema.js.map +1 -1
  149. package/dist/vault/vault.d.ts.map +1 -1
  150. package/dist/vault/vault.js +7 -3
  151. package/dist/vault/vault.js.map +1 -1
  152. package/package.json +8 -2
  153. package/src/__tests__/adapters/claude-code-adapter.test.ts +167 -0
  154. package/src/__tests__/adapters/registry.test.ts +100 -0
  155. package/src/__tests__/packs/pack-lifecycle.test.ts +379 -0
  156. package/src/__tests__/subagent/concurrency-manager.test.ts +132 -0
  157. package/src/__tests__/subagent/dispatcher.test.ts +195 -0
  158. package/src/__tests__/subagent/orphan-reaper.test.ts +141 -0
  159. package/src/__tests__/subagent/result-aggregator.test.ts +141 -0
  160. package/src/__tests__/subagent/task-checkout.test.ts +86 -0
  161. package/src/__tests__/subagent/workspace-resolver.test.ts +138 -0
  162. package/src/adapters/claude-code-adapter.ts +163 -0
  163. package/src/adapters/index.ts +22 -0
  164. package/src/adapters/registry.ts +53 -0
  165. package/src/adapters/types.ts +114 -0
  166. package/src/curator/curator.ts +1 -0
  167. package/src/index.ts +38 -1
  168. package/src/packs/index.ts +5 -1
  169. package/src/packs/lockfile.ts +70 -5
  170. package/src/packs/pack-installer.ts +78 -2
  171. package/src/packs/pack-lifecycle.ts +115 -0
  172. package/src/packs/pack-lockfile.test.ts +1 -1
  173. package/src/packs/pack-system.test.ts +1 -1
  174. package/src/packs/types.ts +40 -2
  175. package/src/persistence/sqlite-provider.ts +26 -2
  176. package/src/runtime/admin-setup-ops.test.ts +9 -4
  177. package/src/runtime/orchestrate-ops.ts +153 -1
  178. package/src/runtime/runtime.ts +15 -0
  179. package/src/runtime/session-briefing.test.ts +94 -2
  180. package/src/runtime/session-briefing.ts +48 -12
  181. package/src/runtime/types.ts +6 -0
  182. package/src/subagent/concurrency-manager.ts +89 -0
  183. package/src/subagent/dispatcher.ts +326 -0
  184. package/src/subagent/index.ts +28 -0
  185. package/src/subagent/orphan-reaper.ts +82 -0
  186. package/src/subagent/result-aggregator.ts +66 -0
  187. package/src/subagent/task-checkout.ts +60 -0
  188. package/src/subagent/types.ts +138 -0
  189. package/src/subagent/workspace-resolver.ts +117 -0
  190. package/src/vault/vault-scaling.test.ts +3 -2
  191. package/vitest.config.ts +2 -0
  192. package/src/hooks/index.ts +0 -6
@@ -0,0 +1,27 @@
1
+ /**
2
+ * ClaudeCodeRuntimeAdapter — RuntimeAdapter implementation for Claude Code CLI.
3
+ *
4
+ * Thin wrapper around a dispatch function (actual child process spawning is #411).
5
+ * Provides environment detection, session codec, and skill sync.
6
+ */
7
+ import type { RuntimeAdapter, AdapterExecutionContext, AdapterExecutionResult, AdapterSessionCodec, AdapterEnvironmentTestResult } from './types.js';
8
+ import type { SkillEntry } from '../skills/sync-skills.js';
9
+ /** Dispatch function signature — injected via constructor */
10
+ export type ClaudeCodeDispatchFn = (prompt: string, workspace: string, config?: Record<string, unknown>) => Promise<{
11
+ exitCode: number;
12
+ output?: string;
13
+ usage?: {
14
+ inputTokens?: number;
15
+ outputTokens?: number;
16
+ };
17
+ }>;
18
+ export declare class ClaudeCodeRuntimeAdapter implements RuntimeAdapter {
19
+ readonly type: "claude-code";
20
+ readonly sessionCodec: AdapterSessionCodec;
21
+ private readonly dispatch;
22
+ constructor(dispatch?: ClaudeCodeDispatchFn);
23
+ execute(ctx: AdapterExecutionContext): Promise<AdapterExecutionResult>;
24
+ testEnvironment(): Promise<AdapterEnvironmentTestResult>;
25
+ syncSkills(skills: SkillEntry[]): Promise<void>;
26
+ }
27
+ //# sourceMappingURL=claude-code-adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claude-code-adapter.d.ts","sourceRoot":"","sources":["../../src/adapters/claude-code-adapter.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,KAAK,EACV,cAAc,EACd,uBAAuB,EACvB,sBAAsB,EAEtB,mBAAmB,EACnB,4BAA4B,EAC7B,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAU3D,6DAA6D;AAC7D,MAAM,MAAM,oBAAoB,GAAG,CACjC,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC7B,OAAO,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CACzD,CAAC,CAAC;AAqBH,qBAAa,wBAAyB,YAAW,cAAc;IAC7D,QAAQ,CAAC,IAAI,EAAG,aAAa,CAAU;IACvC,QAAQ,CAAC,YAAY,sBAA0B;IAE/C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAmC;gBAEhD,QAAQ,CAAC,EAAE,oBAAoB;IAMrC,OAAO,CAAC,GAAG,EAAE,uBAAuB,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAoCtE,eAAe,IAAI,OAAO,CAAC,4BAA4B,CAAC;IA+BxD,UAAU,CAAC,MAAM,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;CAyBtD"}
@@ -0,0 +1,111 @@
1
+ /**
2
+ * ClaudeCodeRuntimeAdapter — RuntimeAdapter implementation for Claude Code CLI.
3
+ *
4
+ * Thin wrapper around a dispatch function (actual child process spawning is #411).
5
+ * Provides environment detection, session codec, and skill sync.
6
+ */
7
+ import { execSync } from 'node:child_process';
8
+ import { platform } from 'node:os';
9
+ // ─── Session Codec ───────────────────────────────────────────────────
10
+ const claudeCodeSessionCodec = {
11
+ serialize(state) {
12
+ return JSON.stringify(state);
13
+ },
14
+ deserialize(serialized) {
15
+ return JSON.parse(serialized);
16
+ },
17
+ getDisplayId(state) {
18
+ const data = state.data;
19
+ return data.sessionId ?? 'unknown';
20
+ },
21
+ };
22
+ // ─── Adapter ─────────────────────────────────────────────────────────
23
+ export class ClaudeCodeRuntimeAdapter {
24
+ type = 'claude-code';
25
+ sessionCodec = claudeCodeSessionCodec;
26
+ dispatch;
27
+ constructor(dispatch) {
28
+ this.dispatch = dispatch;
29
+ }
30
+ // ── Execute ──────────────────────────────────────────────────────
31
+ async execute(ctx) {
32
+ if (!this.dispatch) {
33
+ return {
34
+ exitCode: 1,
35
+ summary: 'No dispatch function configured — cannot execute.',
36
+ };
37
+ }
38
+ ctx.onLog?.(`[claude-code] Executing run ${ctx.runId} in ${ctx.workspace}`);
39
+ const result = await this.dispatch(ctx.prompt, ctx.workspace, ctx.config);
40
+ const executionResult = {
41
+ exitCode: result.exitCode,
42
+ provider: 'anthropic',
43
+ summary: result.output,
44
+ };
45
+ if (result.usage) {
46
+ executionResult.usage = {
47
+ inputTokens: result.usage.inputTokens,
48
+ outputTokens: result.usage.outputTokens,
49
+ totalTokens: (result.usage.inputTokens ?? 0) + (result.usage.outputTokens ?? 0),
50
+ };
51
+ }
52
+ // Propagate session state if the incoming context had one
53
+ if (ctx.session) {
54
+ executionResult.sessionState = ctx.session;
55
+ }
56
+ return executionResult;
57
+ }
58
+ // ── Environment Test ─────────────────────────────────────────────
59
+ async testEnvironment() {
60
+ try {
61
+ const cmd = platform() === 'win32' ? 'where claude' : 'which claude';
62
+ const cliPath = execSync(cmd, { encoding: 'utf-8', timeout: 5_000 }).trim();
63
+ // Try to get version
64
+ let version;
65
+ try {
66
+ version = execSync('claude --version', {
67
+ encoding: 'utf-8',
68
+ timeout: 5_000,
69
+ }).trim();
70
+ }
71
+ catch {
72
+ // Version detection is optional — CLI may not support --version
73
+ }
74
+ return {
75
+ available: true,
76
+ version,
77
+ details: { path: cliPath },
78
+ };
79
+ }
80
+ catch (err) {
81
+ return {
82
+ available: false,
83
+ error: err instanceof Error ? err.message : 'Claude CLI not found in PATH',
84
+ };
85
+ }
86
+ }
87
+ // ── Skill Sync ───────────────────────────────────────────────────
88
+ async syncSkills(skills) {
89
+ if (skills.length === 0)
90
+ return;
91
+ try {
92
+ // Dynamic import to avoid hard failure if sync-skills is unavailable
93
+ const { syncSkillsToClaudeCode } = await import('../skills/sync-skills.js');
94
+ // syncSkillsToClaudeCode expects directories, but we have individual
95
+ // SkillEntry items. Extract unique parent directories from source paths.
96
+ const dirs = [
97
+ ...new Set(skills.map((s) => {
98
+ // sourcePath is typically <dir>/<skill-name>/SKILL.md — go up two levels
99
+ const parts = s.sourcePath.split('/');
100
+ // Remove filename and skill folder to get the skills root dir
101
+ return parts.slice(0, -2).join('/');
102
+ })),
103
+ ];
104
+ syncSkillsToClaudeCode(dirs);
105
+ }
106
+ catch {
107
+ // Graceful degradation — skill sync is optional
108
+ }
109
+ }
110
+ }
111
+ //# sourceMappingURL=claude-code-adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claude-code-adapter.js","sourceRoot":"","sources":["../../src/adapters/claude-code-adapter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Runtime adapter abstraction — dispatch work to any AI CLI.
3
+ *
4
+ * @module adapters
5
+ */
6
+ export type { RuntimeAdapter, AdapterExecutionContext, AdapterExecutionResult, AdapterTokenUsage, AdapterSessionState, AdapterSessionCodec, AdapterEnvironmentTestResult, } from './types.js';
7
+ export { RuntimeAdapterRegistry } from './registry.js';
8
+ export { ClaudeCodeRuntimeAdapter } from './claude-code-adapter.js';
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/adapters/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,YAAY,EACV,cAAc,EACd,uBAAuB,EACvB,sBAAsB,EACtB,iBAAiB,EACjB,mBAAmB,EACnB,mBAAmB,EACnB,4BAA4B,GAC7B,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AAGvD,OAAO,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Runtime adapter abstraction — dispatch work to any AI CLI.
3
+ *
4
+ * @module adapters
5
+ */
6
+ // Registry
7
+ export { RuntimeAdapterRegistry } from './registry.js';
8
+ // Built-in adapters
9
+ export { ClaudeCodeRuntimeAdapter } from './claude-code-adapter.js';
10
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/adapters/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAaH,WAAW;AACX,OAAO,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AAEvD,oBAAoB;AACpB,OAAO,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * RuntimeAdapterRegistry — simple Map-backed registry for runtime adapters.
3
+ *
4
+ * Adapters register at engine startup. No dynamic loading.
5
+ */
6
+ import type { RuntimeAdapter } from './types.js';
7
+ export declare class RuntimeAdapterRegistry {
8
+ private readonly adapters;
9
+ private defaultType;
10
+ /** Register an adapter. Throws if the type is already registered. */
11
+ register(type: string, adapter: RuntimeAdapter): void;
12
+ /** Get an adapter by type. Throws if not found. */
13
+ get(type: string): RuntimeAdapter;
14
+ /** List all registered adapter type strings. */
15
+ list(): string[];
16
+ /** Set the default adapter type. Throws if the type is not registered. */
17
+ setDefault(type: string): void;
18
+ /** Get the default adapter. Throws if no default is set. */
19
+ getDefault(): RuntimeAdapter;
20
+ }
21
+ //# sourceMappingURL=registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/adapters/registry.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD,qBAAa,sBAAsB;IACjC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAqC;IAC9D,OAAO,CAAC,WAAW,CAAqB;IAExC,qEAAqE;IACrE,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,GAAG,IAAI;IAOrD,mDAAmD;IACnD,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc;IAWjC,gDAAgD;IAChD,IAAI,IAAI,MAAM,EAAE;IAIhB,0EAA0E;IAC1E,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAO9B,4DAA4D;IAC5D,UAAU,IAAI,cAAc;CAM7B"}
@@ -0,0 +1,44 @@
1
+ /**
2
+ * RuntimeAdapterRegistry — simple Map-backed registry for runtime adapters.
3
+ *
4
+ * Adapters register at engine startup. No dynamic loading.
5
+ */
6
+ export class RuntimeAdapterRegistry {
7
+ adapters = new Map();
8
+ defaultType;
9
+ /** Register an adapter. Throws if the type is already registered. */
10
+ register(type, adapter) {
11
+ if (this.adapters.has(type)) {
12
+ throw new Error(`RuntimeAdapterRegistry: adapter type "${type}" is already registered.`);
13
+ }
14
+ this.adapters.set(type, adapter);
15
+ }
16
+ /** Get an adapter by type. Throws if not found. */
17
+ get(type) {
18
+ const adapter = this.adapters.get(type);
19
+ if (!adapter) {
20
+ const available = this.list().join(', ') || '(none)';
21
+ throw new Error(`RuntimeAdapterRegistry: unknown adapter type "${type}". Registered: ${available}`);
22
+ }
23
+ return adapter;
24
+ }
25
+ /** List all registered adapter type strings. */
26
+ list() {
27
+ return [...this.adapters.keys()];
28
+ }
29
+ /** Set the default adapter type. Throws if the type is not registered. */
30
+ setDefault(type) {
31
+ if (!this.adapters.has(type)) {
32
+ throw new Error(`RuntimeAdapterRegistry: cannot set default to unregistered type "${type}".`);
33
+ }
34
+ this.defaultType = type;
35
+ }
36
+ /** Get the default adapter. Throws if no default is set. */
37
+ getDefault() {
38
+ if (!this.defaultType) {
39
+ throw new Error('RuntimeAdapterRegistry: no default adapter has been set.');
40
+ }
41
+ return this.get(this.defaultType);
42
+ }
43
+ }
44
+ //# sourceMappingURL=registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/adapters/registry.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,MAAM,OAAO,sBAAsB;IAChB,QAAQ,GAAG,IAAI,GAAG,EAA0B,CAAC;IACtD,WAAW,CAAqB;IAExC,qEAAqE;IACrE,QAAQ,CAAC,IAAY,EAAE,OAAuB;QAC5C,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YAC5B,MAAM,IAAI,KAAK,CAAC,yCAAyC,IAAI,0BAA0B,CAAC,CAAC;QAC3F,CAAC;QACD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACnC,CAAC;IAED,mDAAmD;IACnD,GAAG,CAAC,IAAY;QACd,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACxC,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC;YACrD,MAAM,IAAI,KAAK,CACb,iDAAiD,IAAI,kBAAkB,SAAS,EAAE,CACnF,CAAC;QACJ,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,gDAAgD;IAChD,IAAI;QACF,OAAO,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;IACnC,CAAC;IAED,0EAA0E;IAC1E,UAAU,CAAC,IAAY;QACrB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CAAC,oEAAoE,IAAI,IAAI,CAAC,CAAC;QAChG,CAAC;QACD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;IAC1B,CAAC;IAED,4DAA4D;IAC5D,UAAU;QACR,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC;QAC9E,CAAC;QACD,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACpC,CAAC;CACF"}
@@ -0,0 +1,93 @@
1
+ /**
2
+ * Runtime adapter abstraction — dispatch work to any AI CLI.
3
+ *
4
+ * SEPARATE from enforcement HostAdapter (which translates rules).
5
+ * This is about executing tasks on different runtimes (Claude Code, Codex, Cursor, etc.)
6
+ *
7
+ * Inspired by Paperclip AI's ServerAdapterModule pattern.
8
+ */
9
+ import type { SkillEntry } from '../skills/sync-skills.js';
10
+ /** Context passed to an adapter when executing a task */
11
+ export interface AdapterExecutionContext {
12
+ /** Unique run identifier */
13
+ runId: string;
14
+ /** The prompt or task description to execute */
15
+ prompt: string;
16
+ /** Working directory for execution */
17
+ workspace: string;
18
+ /** Session state from previous run (adapter-specific format) */
19
+ session?: AdapterSessionState;
20
+ /** Skills to inject into the runtime */
21
+ skills?: SkillEntry[];
22
+ /** Adapter-specific configuration overrides */
23
+ config?: Record<string, unknown>;
24
+ /** Callback for streaming log output */
25
+ onLog?: (message: string) => void;
26
+ /** Callback for metadata events (tokens used, model, etc.) */
27
+ onMeta?: (meta: Record<string, unknown>) => void;
28
+ }
29
+ /** Opaque session state — each adapter defines its own shape */
30
+ export interface AdapterSessionState {
31
+ /** Adapter type that created this state */
32
+ adapterType: string;
33
+ /** Serialized session data (adapter-specific) */
34
+ data: Record<string, unknown>;
35
+ }
36
+ /** Result returned after adapter execution */
37
+ export interface AdapterExecutionResult {
38
+ /** Exit code (0 = success) */
39
+ exitCode: number;
40
+ /** Whether execution timed out */
41
+ timedOut?: boolean;
42
+ /** Token usage */
43
+ usage?: AdapterTokenUsage;
44
+ /** Session state to persist for next run */
45
+ sessionState?: AdapterSessionState;
46
+ /** Human-readable summary of what was done */
47
+ summary?: string;
48
+ /** Structured result data */
49
+ resultData?: Record<string, unknown>;
50
+ /** Provider and model info */
51
+ provider?: string;
52
+ model?: string;
53
+ }
54
+ /** Token usage reported by the adapter */
55
+ export interface AdapterTokenUsage {
56
+ inputTokens?: number;
57
+ outputTokens?: number;
58
+ totalTokens?: number;
59
+ }
60
+ /** Per-adapter session serialization — each runtime stores different session data */
61
+ export interface AdapterSessionCodec {
62
+ /** Serialize session state for persistence */
63
+ serialize(state: AdapterSessionState): string;
64
+ /** Deserialize persisted session state */
65
+ deserialize(serialized: string): AdapterSessionState;
66
+ /** Get a human-readable display ID for the session */
67
+ getDisplayId(state: AdapterSessionState): string;
68
+ }
69
+ /** Result of testing whether a runtime is available */
70
+ export interface AdapterEnvironmentTestResult {
71
+ /** Whether the runtime CLI is available */
72
+ available: boolean;
73
+ /** Runtime version (if detected) */
74
+ version?: string;
75
+ /** Additional details (path, capabilities, etc.) */
76
+ details?: Record<string, unknown>;
77
+ /** Error message if not available */
78
+ error?: string;
79
+ }
80
+ /** Core adapter interface — implement this for each AI runtime */
81
+ export interface RuntimeAdapter {
82
+ /** Adapter type identifier (e.g., 'claude-code', 'codex', 'cursor') */
83
+ readonly type: string;
84
+ /** Execute a task in this runtime */
85
+ execute(ctx: AdapterExecutionContext): Promise<AdapterExecutionResult>;
86
+ /** Test whether this runtime is available in the current environment */
87
+ testEnvironment(): Promise<AdapterEnvironmentTestResult>;
88
+ /** Optional: session codec for persisting runtime-specific session state */
89
+ sessionCodec?: AdapterSessionCodec;
90
+ /** Optional: sync skills into the runtime's expected format */
91
+ syncSkills?(skills: SkillEntry[]): Promise<void>;
92
+ }
93
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/adapters/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Runtime adapter abstraction — dispatch work to any AI CLI.
3
+ *
4
+ * SEPARATE from enforcement HostAdapter (which translates rules).
5
+ * This is about executing tasks on different runtimes (Claude Code, Codex, Cursor, etc.)
6
+ *
7
+ * Inspired by Paperclip AI's ServerAdapterModule pattern.
8
+ */
9
+ export {};
10
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/adapters/types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG"}
@@ -18,6 +18,7 @@ export declare class Brain {
18
18
  /**
19
19
  * Two-pass retrieval — Pass 2: Load.
20
20
  * Returns full entries for specific IDs (from a previous scan).
21
+ * Uses a single WHERE id IN (...) query instead of per-ID lookups.
21
22
  */
22
23
  loadEntries(ids: string[]): IntelligenceEntry[];
23
24
  /** Rough token estimate for an entry (chars / 4). */
@@ -48,7 +49,17 @@ export declare class Brain {
48
49
  private generateTags;
49
50
  private detectDuplicate;
50
51
  private updateVocabularyIncremental;
51
- private persistVocabulary;
52
+ private persistVocabularyPartial;
53
+ /**
54
+ * Fast startup path: load vocabulary from the brain_vocabulary table.
55
+ * If the table is empty (first boot or after corruption), trigger a full rebuild.
56
+ */
57
+ private loadVocabularyFromDb;
58
+ /**
59
+ * Full persist: DELETE all rows then re-INSERT. Used by rebuildVocabulary() which
60
+ * replaces the entire vocabulary and needs to remove stale terms.
61
+ */
62
+ private persistVocabularyFull;
52
63
  private recomputeWeights;
53
64
  }
54
65
  //# sourceMappingURL=brain.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"brain.d.ts","sourceRoot":"","sources":["../../src/brain/brain.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAE/C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AASlE,OAAO,KAAK,EAGV,YAAY,EACZ,UAAU,EACV,aAAa,EACb,aAAa,EACb,UAAU,EACV,YAAY,EACZ,aAAa,EACb,aAAa,EACb,aAAa,EACd,MAAM,YAAY,CAAC;AA2BpB,qBAAa,KAAK;IAChB,OAAO,CAAC,KAAK,CAAQ;IACrB,OAAO,CAAC,YAAY,CAA2B;IAC/C,OAAO,CAAC,UAAU,CAAkC;IACpD,OAAO,CAAC,OAAO,CAA0C;gBAE7C,KAAK,EAAE,KAAK,EAAE,YAAY,CAAC,EAAE,YAAY;IAO/C,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAyDxF;;;;OAIG;IACG,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAe7F;;;OAGG;IACH,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,iBAAiB,EAAE;IAS/C,qDAAqD;IACrD,OAAO,CAAC,cAAc;IAStB,gBAAgB,CACd,KAAK,EAAE,OAAO,CAAC,iBAAiB,CAAC,GAAG;QAClC,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,iBAAiB,CAAC,MAAM,CAAC,CAAC;QAChC,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,EAAE,iBAAiB,CAAC,UAAU,CAAC,CAAC;QACxC,WAAW,EAAE,MAAM,CAAC;KACrB,GACA,aAAa;IA6DhB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,WAAW,GAAG,IAAI;IACtF,cAAc,CAAC,KAAK,EAAE,aAAa,GAAG,aAAa;IA8DnD,gBAAgB,IAAI,aAAa;IA0C3B,mBAAmB,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAOzE,iBAAiB,IAAI,IAAI;IAiEzB,QAAQ,IAAI,UAAU;IAYtB,iBAAiB,IAAI,MAAM;IAIrB,cAAc,CAClB,KAAK,EAAE,MAAM,EACb,KAAK,GAAE,MAAW,GACjB,OAAO,CACR,KAAK,CAAC;QACJ,EAAE,EAAE,MAAM,CAAC;QACX,KAAK,EAAE,MAAM,CAAC;QACd,UAAU,EAAE,MAAM,CAAC;QACnB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;QAC1B,MAAM,EAAE,QAAQ,GAAG,UAAU,GAAG,SAAS,CAAC;KAC3C,CAAC,CACH;IA2BD,OAAO,CAAC,UAAU;IA4ClB,OAAO,CAAC,YAAY;IAgBpB,OAAO,CAAC,eAAe;IA0CvB,OAAO,CAAC,2BAA2B;IAkBnC,OAAO,CAAC,iBAAiB;IAezB,OAAO,CAAC,gBAAgB;CAoDzB"}
1
+ {"version":3,"file":"brain.d.ts","sourceRoot":"","sources":["../../src/brain/brain.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAE/C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAUlE,OAAO,KAAK,EAGV,YAAY,EACZ,UAAU,EACV,aAAa,EACb,aAAa,EACb,UAAU,EACV,YAAY,EACZ,aAAa,EACb,aAAa,EACb,aAAa,EACd,MAAM,YAAY,CAAC;AA2BpB,qBAAa,KAAK;IAChB,OAAO,CAAC,KAAK,CAAQ;IACrB,OAAO,CAAC,YAAY,CAA2B;IAC/C,OAAO,CAAC,UAAU,CAAkC;IACpD,OAAO,CAAC,OAAO,CAA0C;gBAE7C,KAAK,EAAE,KAAK,EAAE,YAAY,CAAC,EAAE,YAAY;IAO/C,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IA+DxF;;;;OAIG;IACG,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAe7F;;;;OAIG;IACH,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,iBAAiB,EAAE;IAW/C,qDAAqD;IACrD,OAAO,CAAC,cAAc;IAStB,gBAAgB,CACd,KAAK,EAAE,OAAO,CAAC,iBAAiB,CAAC,GAAG;QAClC,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,iBAAiB,CAAC,MAAM,CAAC,CAAC;QAChC,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,EAAE,iBAAiB,CAAC,UAAU,CAAC,CAAC;QACxC,WAAW,EAAE,MAAM,CAAC;KACrB,GACA,aAAa;IA6DhB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,WAAW,GAAG,IAAI;IACtF,cAAc,CAAC,KAAK,EAAE,aAAa,GAAG,aAAa;IA8DnD,gBAAgB,IAAI,aAAa;IA0C3B,mBAAmB,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAOzE,iBAAiB,IAAI,IAAI;IAoFzB,QAAQ,IAAI,UAAU;IAYtB,iBAAiB,IAAI,MAAM;IAIrB,cAAc,CAClB,KAAK,EAAE,MAAM,EACb,KAAK,GAAE,MAAW,GACjB,OAAO,CACR,KAAK,CAAC;QACJ,EAAE,EAAE,MAAM,CAAC;QACX,KAAK,EAAE,MAAM,CAAC;QACd,UAAU,EAAE,MAAM,CAAC;QACnB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;QAC1B,MAAM,EAAE,QAAQ,GAAG,UAAU,GAAG,SAAS,CAAC;KAC3C,CAAC,CACH;IA2BD,OAAO,CAAC,UAAU;IA4ClB,OAAO,CAAC,YAAY;IAgBpB,OAAO,CAAC,eAAe;IA0CvB,OAAO,CAAC,2BAA2B;IAoBnC,OAAO,CAAC,wBAAwB;IAchC;;;OAGG;IACH,OAAO,CAAC,oBAAoB;IAkB5B;;;OAGG;IACH,OAAO,CAAC,qBAAqB;IAkB7B,OAAO,CAAC,gBAAgB;CAoDzB"}