@soleri/forge 4.0.0 → 4.2.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 (79) hide show
  1. package/CHANGELOG.md +16 -1
  2. package/README.md +16 -1
  3. package/dist/domain-manager.d.ts +19 -0
  4. package/dist/domain-manager.js +139 -0
  5. package/dist/domain-manager.js.map +1 -0
  6. package/dist/facades/forge.facade.js +16 -0
  7. package/dist/facades/forge.facade.js.map +1 -1
  8. package/dist/index.js +0 -0
  9. package/dist/knowledge-installer.d.ts +0 -17
  10. package/dist/knowledge-installer.js +2 -96
  11. package/dist/knowledge-installer.js.map +1 -1
  12. package/dist/lib.d.ts +12 -0
  13. package/dist/lib.js +12 -0
  14. package/dist/lib.js.map +1 -0
  15. package/dist/patching.d.ts +17 -0
  16. package/dist/patching.js +103 -0
  17. package/dist/patching.js.map +1 -0
  18. package/dist/templates/core-facade.js +64 -4
  19. package/dist/templates/core-facade.js.map +1 -1
  20. package/dist/templates/entry-point.js +22 -3
  21. package/dist/templates/entry-point.js.map +1 -1
  22. package/dist/templates/package-json.js +1 -1
  23. package/dist/types.d.ts +11 -0
  24. package/package.json +8 -1
  25. package/src/__tests__/knowledge-installer.test.ts +3 -7
  26. package/src/domain-manager.ts +168 -0
  27. package/src/facades/forge.facade.ts +18 -0
  28. package/src/knowledge-installer.ts +2 -117
  29. package/src/lib.ts +19 -0
  30. package/src/patching.ts +123 -0
  31. package/src/templates/core-facade.ts +64 -4
  32. package/src/templates/entry-point.ts +22 -3
  33. package/src/templates/package-json.ts +1 -1
  34. package/src/types.ts +12 -0
  35. package/dist/templates/brain.d.ts +0 -6
  36. package/dist/templates/brain.js +0 -478
  37. package/dist/templates/brain.js.map +0 -1
  38. package/dist/templates/facade-factory.d.ts +0 -1
  39. package/dist/templates/facade-factory.js +0 -63
  40. package/dist/templates/facade-factory.js.map +0 -1
  41. package/dist/templates/facade-types.d.ts +0 -1
  42. package/dist/templates/facade-types.js +0 -46
  43. package/dist/templates/facade-types.js.map +0 -1
  44. package/dist/templates/intelligence-loader.d.ts +0 -1
  45. package/dist/templates/intelligence-loader.js +0 -43
  46. package/dist/templates/intelligence-loader.js.map +0 -1
  47. package/dist/templates/intelligence-types.d.ts +0 -1
  48. package/dist/templates/intelligence-types.js +0 -24
  49. package/dist/templates/intelligence-types.js.map +0 -1
  50. package/dist/templates/llm-key-pool.d.ts +0 -7
  51. package/dist/templates/llm-key-pool.js +0 -211
  52. package/dist/templates/llm-key-pool.js.map +0 -1
  53. package/dist/templates/llm-types.d.ts +0 -5
  54. package/dist/templates/llm-types.js +0 -161
  55. package/dist/templates/llm-types.js.map +0 -1
  56. package/dist/templates/llm-utils.d.ts +0 -5
  57. package/dist/templates/llm-utils.js +0 -260
  58. package/dist/templates/llm-utils.js.map +0 -1
  59. package/dist/templates/planner.d.ts +0 -5
  60. package/dist/templates/planner.js +0 -150
  61. package/dist/templates/planner.js.map +0 -1
  62. package/dist/templates/test-brain.d.ts +0 -6
  63. package/dist/templates/test-brain.js +0 -474
  64. package/dist/templates/test-brain.js.map +0 -1
  65. package/dist/templates/test-llm.d.ts +0 -7
  66. package/dist/templates/test-llm.js +0 -574
  67. package/dist/templates/test-llm.js.map +0 -1
  68. package/dist/templates/test-loader.d.ts +0 -5
  69. package/dist/templates/test-loader.js +0 -146
  70. package/dist/templates/test-loader.js.map +0 -1
  71. package/dist/templates/test-planner.d.ts +0 -5
  72. package/dist/templates/test-planner.js +0 -271
  73. package/dist/templates/test-planner.js.map +0 -1
  74. package/dist/templates/test-vault.d.ts +0 -5
  75. package/dist/templates/test-vault.js +0 -380
  76. package/dist/templates/test-vault.js.map +0 -1
  77. package/dist/templates/vault.d.ts +0 -5
  78. package/dist/templates/vault.js +0 -263
  79. package/dist/templates/vault.js.map +0 -1
package/CHANGELOG.md CHANGED
@@ -2,6 +2,21 @@
2
2
 
3
3
  All notable changes to Soleri Forge (formerly Agent Forge) are documented here.
4
4
 
5
+ ## [4.1.0] - 2026-03-04
6
+
7
+ ### Added
8
+
9
+ - **`addDomain()` function** — Add a knowledge domain to an existing agent: creates empty bundle, generates facade, patches `src/index.ts` and `src/activation/claude-md-content.ts`, rebuilds
10
+ - **`add_domain` forge operation** — MCP-accessible op wrapping `addDomain()` for AI-side parity
11
+ - **`./lib` export path** — `import { scaffold, addDomain, ... } from '@soleri/forge/lib'` for programmatic access without starting the MCP server
12
+ - **`patching.ts`** — Extracted `patchIndexTs()` and `patchClaudeMdContent()` from `knowledge-installer.ts` for reuse
13
+
14
+ ### Changed
15
+
16
+ - `addDomain` reports failure when source file patching fails (not just build failures)
17
+ - Malformed `package.json` in agent projects returns structured error instead of throwing
18
+ - Forge operations: 6 (was 5)
19
+
5
20
  ## [2.1.0] - 2026-02-28
6
21
 
7
22
  Feature release — knowledge pack installer. Agents can now receive pre-built domain knowledge after scaffolding.
@@ -64,7 +79,7 @@ Major release. Agents now ship with an intelligence layer (Brain) and optional L
64
79
 
65
80
  ### Changed
66
81
 
67
- - Domain facades now use Brain for search (`intelligentSearch`) and capture (`enrichAndCapture` with auto-tags and dedup) instead of raw vault queries
82
+ - Domain facades now use Brain for search (`intelligentSearch`) and capture (`enrichAndCapture` with auto-tags and deduplication) instead of raw vault queries
68
83
  - Core facade signature expanded: `createCoreFacade(vault, planner, brain, llmClient?, openaiKeyPool?, anthropicKeyPool?)`
69
84
  - Generated agents include `@anthropic-ai/sdk` as a dependency
70
85
  - Activation triggers normalized: "Hola/Adios" → "Hello/Goodbye"
package/README.md CHANGED
@@ -105,7 +105,7 @@ Total: `(domains x 5) + 24` operations per agent.
105
105
 
106
106
  ## Forge Operations
107
107
 
108
- Soleri Forge exposes one MCP tool (`forge`) with 5 ops:
108
+ Soleri Forge exposes one MCP tool (`forge`) with 6 ops:
109
109
 
110
110
  | Op | Purpose |
111
111
  | ------------------- | ----------------------------------------------- |
@@ -114,6 +114,7 @@ Soleri Forge exposes one MCP tool (`forge`) with 5 ops:
114
114
  | `create` | Scaffold the complete agent project |
115
115
  | `list_agents` | Scan a directory for existing agents |
116
116
  | `install_knowledge` | Install knowledge packs into an existing agent |
117
+ | `add_domain` | Add a new knowledge domain to an existing agent |
117
118
 
118
119
  ## Installing Knowledge Packs
119
120
 
@@ -178,6 +179,16 @@ npm run dev # Run with tsx (no build needed)
178
179
  npm test # Run tests
179
180
  ```
180
181
 
182
+ ### Programmatic API
183
+
184
+ Import forge functions directly without starting the MCP server:
185
+
186
+ ```typescript
187
+ import { scaffold, addDomain, installKnowledge, listAgents } from '@soleri/forge/lib';
188
+ ```
189
+
190
+ This is how `@soleri/cli` wraps forge under the hood.
191
+
181
192
  ### Architecture
182
193
 
183
194
  Soleri Forge is itself an MCP server built on the same patterns it generates:
@@ -186,12 +197,16 @@ Soleri Forge is itself an MCP server built on the same patterns it generates:
186
197
  - **`src/facades/forge.facade.ts`** — Op dispatch for all forge operations
187
198
  - **`src/scaffolder.ts`** — Core scaffolding logic (preview, create, list)
188
199
  - **`src/knowledge-installer.ts`** — Knowledge pack installer
200
+ - **`src/domain-manager.ts`** — Domain addition logic (add to existing agents)
201
+ - **`src/patching.ts`** — Shared source file patching utilities
202
+ - **`src/lib.ts`** — Public API re-exports for programmatic access
189
203
  - **`src/types.ts`** — Config schema and result types (Zod-validated)
190
204
  - **`src/templates/`** — 27 template generators
191
205
 
192
206
  ## Requirements
193
207
 
194
208
  - Node.js 18+
209
+ - macOS or Linux (Windows via [WSL2](https://learn.microsoft.com/en-us/windows/wsl/install))
195
210
  - Claude Code (for MCP registration and activation)
196
211
 
197
212
  ## License
@@ -0,0 +1,19 @@
1
+ import type { AddDomainResult } from './types.js';
2
+ interface AddDomainParams {
3
+ agentPath: string;
4
+ domain: string;
5
+ noBuild?: boolean;
6
+ }
7
+ /**
8
+ * Add a new knowledge domain to an existing agent.
9
+ *
10
+ * Steps:
11
+ * 1. Validate agent path and domain name
12
+ * 2. Create empty intelligence bundle
13
+ * 3. Generate domain facade
14
+ * 4. Patch src/index.ts with import + registration
15
+ * 5. Patch src/activation/claude-md-content.ts with facade table rows
16
+ * 6. Rebuild (unless noBuild)
17
+ */
18
+ export declare function addDomain(params: AddDomainParams): Promise<AddDomainResult>;
19
+ export {};
@@ -0,0 +1,139 @@
1
+ /**
2
+ * Domain manager — add new knowledge domains to existing agents.
3
+ */
4
+ import { existsSync, readFileSync, writeFileSync, mkdirSync } from 'node:fs';
5
+ import { join } from 'node:path';
6
+ import { execFileSync } from 'node:child_process';
7
+ import { generateDomainFacade } from './templates/domain-facade.js';
8
+ import { generateVaultOnlyDomainFacade } from './knowledge-installer.js';
9
+ import { patchIndexTs, patchClaudeMdContent } from './patching.js';
10
+ /**
11
+ * Add a new knowledge domain to an existing agent.
12
+ *
13
+ * Steps:
14
+ * 1. Validate agent path and domain name
15
+ * 2. Create empty intelligence bundle
16
+ * 3. Generate domain facade
17
+ * 4. Patch src/index.ts with import + registration
18
+ * 5. Patch src/activation/claude-md-content.ts with facade table rows
19
+ * 6. Rebuild (unless noBuild)
20
+ */
21
+ export async function addDomain(params) {
22
+ const { agentPath, domain, noBuild = false } = params;
23
+ const warnings = [];
24
+ // ── Validate agent ──
25
+ const pkgPath = join(agentPath, 'package.json');
26
+ if (!existsSync(pkgPath)) {
27
+ return fail(agentPath, domain, 'No package.json found — is this an agent project?');
28
+ }
29
+ let pkg;
30
+ try {
31
+ pkg = JSON.parse(readFileSync(pkgPath, 'utf-8'));
32
+ }
33
+ catch {
34
+ return fail(agentPath, domain, 'Failed to parse package.json — is it valid JSON?');
35
+ }
36
+ const pkgName = pkg.name ?? '';
37
+ if (!pkgName.endsWith('-mcp')) {
38
+ return fail(agentPath, domain, `package.json name "${pkgName}" does not end with -mcp`);
39
+ }
40
+ const agentId = pkgName.replace(/-mcp$/, '');
41
+ // ── Validate domain name ──
42
+ if (!/^[a-z][a-z0-9-]*$/.test(domain)) {
43
+ return fail(agentPath, domain, `Invalid domain name "${domain}" — must be kebab-case`);
44
+ }
45
+ // ── Check if domain already exists ──
46
+ const dataDir = join(agentPath, 'src', 'intelligence', 'data');
47
+ if (!existsSync(dataDir)) {
48
+ return fail(agentPath, domain, 'src/intelligence/data/ directory not found');
49
+ }
50
+ const bundlePath = join(dataDir, `${domain}.json`);
51
+ if (existsSync(bundlePath)) {
52
+ return fail(agentPath, domain, `Domain "${domain}" already exists`);
53
+ }
54
+ const hasBrain = existsSync(join(agentPath, 'src', 'brain'));
55
+ // ── Step 1: Create empty bundle ──
56
+ const emptyBundle = JSON.stringify({ domain, version: '1.0.0', entries: [] }, null, 2);
57
+ writeFileSync(bundlePath, emptyBundle, 'utf-8');
58
+ // Also write to dist if it exists
59
+ const distDataDir = join(agentPath, 'dist', 'intelligence', 'data');
60
+ if (existsSync(join(agentPath, 'dist'))) {
61
+ mkdirSync(distDataDir, { recursive: true });
62
+ writeFileSync(join(distDataDir, `${domain}.json`), emptyBundle, 'utf-8');
63
+ }
64
+ // ── Step 2: Generate facade ──
65
+ const facadesDir = join(agentPath, 'src', 'facades');
66
+ const facadePath = join(facadesDir, `${domain}.facade.ts`);
67
+ if (existsSync(facadePath)) {
68
+ warnings.push(`Facade ${domain}.facade.ts already exists — skipped`);
69
+ }
70
+ else {
71
+ const facadeCode = hasBrain
72
+ ? generateDomainFacade(agentId, domain)
73
+ : generateVaultOnlyDomainFacade(agentId, domain);
74
+ writeFileSync(facadePath, facadeCode, 'utf-8');
75
+ }
76
+ // ── Step 3: Patch src/index.ts ──
77
+ const indexPath = join(agentPath, 'src', 'index.ts');
78
+ if (existsSync(indexPath)) {
79
+ const patched = patchIndexTs(readFileSync(indexPath, 'utf-8'), [domain], hasBrain);
80
+ if (patched !== null) {
81
+ writeFileSync(indexPath, patched, 'utf-8');
82
+ }
83
+ else {
84
+ warnings.push('Could not patch src/index.ts — anchor patterns not found');
85
+ }
86
+ }
87
+ // ── Step 4: Patch claude-md-content.ts ──
88
+ const claudeMdPath = join(agentPath, 'src', 'activation', 'claude-md-content.ts');
89
+ if (existsSync(claudeMdPath)) {
90
+ const patched = patchClaudeMdContent(readFileSync(claudeMdPath, 'utf-8'), agentId, [domain]);
91
+ if (patched !== null) {
92
+ writeFileSync(claudeMdPath, patched, 'utf-8');
93
+ }
94
+ else {
95
+ warnings.push('Could not patch claude-md-content.ts — anchor not found');
96
+ }
97
+ }
98
+ // ── Step 5: Build ──
99
+ let buildOutput = '';
100
+ if (!noBuild) {
101
+ try {
102
+ buildOutput = execFileSync('npm', ['run', 'build'], {
103
+ cwd: agentPath,
104
+ encoding: 'utf-8',
105
+ timeout: 60_000,
106
+ stdio: ['pipe', 'pipe', 'pipe'],
107
+ });
108
+ }
109
+ catch (err) {
110
+ const stderr = err.stderr ?? '';
111
+ buildOutput = `Build failed: ${stderr}`;
112
+ warnings.push('Build failed — check buildOutput for details');
113
+ }
114
+ }
115
+ const hasPatchFailure = warnings.some((w) => w.includes('Could not patch') || w.includes('Build failed'));
116
+ return {
117
+ success: !hasPatchFailure,
118
+ agentPath,
119
+ domain,
120
+ agentId,
121
+ facadeGenerated: !existsSync(facadePath) || !warnings.some((w) => w.includes('already exists')),
122
+ buildOutput,
123
+ warnings,
124
+ summary: `Added domain "${domain}" to ${agentId}${warnings.length > 0 ? ` (${warnings.length} warning(s))` : ''}`,
125
+ };
126
+ }
127
+ function fail(agentPath, domain, message) {
128
+ return {
129
+ success: false,
130
+ agentPath,
131
+ domain,
132
+ agentId: '',
133
+ facadeGenerated: false,
134
+ buildOutput: '',
135
+ warnings: [message],
136
+ summary: message,
137
+ };
138
+ }
139
+ //# sourceMappingURL=domain-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"domain-manager.js","sourceRoot":"","sources":["../src/domain-manager.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,7 @@ import { z } from 'zod';
2
2
  import { scaffold, previewScaffold, listAgents } from '../scaffolder.js';
3
3
  import { AgentConfigSchema } from '../types.js';
4
4
  import { installKnowledge } from '../knowledge-installer.js';
5
+ import { addDomain } from '../domain-manager.js';
5
6
  export const forgeOps = [
6
7
  {
7
8
  name: 'preview',
@@ -130,5 +131,20 @@ export const forgeOps = [
130
131
  }),
131
132
  handler: async (params) => installKnowledge(params),
132
133
  },
134
+ {
135
+ name: 'add_domain',
136
+ description: 'Add a new knowledge domain to an existing MCP agent. ' +
137
+ 'Creates an empty bundle, generates a domain facade, patches index.ts and claude-md-content.ts, then rebuilds.',
138
+ schema: z.object({
139
+ agentPath: z.string().describe('Absolute path to the target agent project'),
140
+ domain: z.string().describe('Domain name in kebab-case (e.g., "security", "api-design")'),
141
+ noBuild: z
142
+ .boolean()
143
+ .optional()
144
+ .default(false)
145
+ .describe('Skip the build step after adding the domain'),
146
+ }),
147
+ handler: async (params) => addDomain(params),
148
+ },
133
149
  ];
134
150
  //# sourceMappingURL=forge.facade.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"forge.facade.js","sourceRoot":"","sources":["../../src/facades/forge.facade.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACzE,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAS7D,MAAM,CAAC,MAAM,QAAQ,GAAY;IAC/B;QACE,IAAI,EAAE,SAAS;QACf,WAAW,EACT,gEAAgE;YAChE,uEAAuE;YACvE,oCAAoC;QACtC,MAAM,EAAE,iBAAiB;QACzB,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;YACxB,MAAM,MAAM,GAAG,iBAAiB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAC/C,OAAO,eAAe,CAAC,MAAM,CAAC,CAAC;QACjC,CAAC;KACF;IACD;QACE,IAAI,EAAE,QAAQ;QACd,WAAW,EACT,gEAAgE;YAChE,0FAA0F;YAC1F,sFAAsF;QACxF,MAAM,EAAE,iBAAiB;QACzB,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;YACxB,MAAM,MAAM,GAAG,iBAAiB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAC/C,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC1B,CAAC;KACF;IACD;QACE,IAAI,EAAE,aAAa;QACnB,WAAW,EACT,wCAAwC;YACxC,oEAAoE;QACtE,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;YACf,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,6CAA6C,CAAC;SAC9E,CAAC;QACF,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;YACxB,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,SAAmB,CAAC,CAAC;YACtD,OAAO;gBACL,MAAM;gBACN,KAAK,EAAE,MAAM,CAAC,MAAM;gBACpB,IAAI,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,8CAA8C,CAAC,CAAC,CAAC,SAAS;aACvF,CAAC;QACJ,CAAC;KACF;IACD;QACE,IAAI,EAAE,OAAO;QACb,WAAW,EACT,yFAAyF;YACzF,uEAAuE;QACzE,OAAO,EAAE,KAAK,IAAI,EAAE;YAClB,OAAO;gBACL,KAAK,EAAE,sBAAsB;gBAC7B,YAAY,EACV,iIAAiI;gBACnI,KAAK,EAAE;oBACL;wBACE,IAAI,EAAE,CAAC;wBACP,MAAM,EAAE,qBAAqB;wBAC7B,GAAG,EAAE,6FAA6F;wBAClG,QAAQ,EAAE;4BACR,8BAA8B;4BAC9B,qBAAqB;4BACrB,iCAAiC;yBAClC;qBACF;oBACD;wBACE,IAAI,EAAE,CAAC;wBACP,MAAM,EAAE,0BAA0B;wBAClC,GAAG,EAAE,mFAAmF;wBACxF,IAAI,EAAE;4BACJ,6CAA6C;4BAC7C,wEAAwE;yBACzE;qBACF;oBACD;wBACE,IAAI,EAAE,CAAC;wBACP,MAAM,EAAE,gBAAgB;wBACxB,GAAG,EAAE,2HAA2H;wBAChI,IAAI,EAAE;4BACJ,sBAAsB;4BACtB,uEAAuE;4BACvE,gCAAgC;yBACjC;qBACF;oBACD;wBACE,IAAI,EAAE,CAAC;wBACP,MAAM,EAAE,mBAAmB;wBAC3B,GAAG,EAAE,sGAAsG;wBAC3G,QAAQ,EAAE;4BACR,yCAAyC;4BACzC,4BAA4B;4BAC5B,gCAAgC;yBACjC;qBACF;oBACD;wBACE,IAAI,EAAE,CAAC;wBACP,MAAM,EAAE,qBAAqB;wBAC7B,GAAG,EAAE,mGAAmG;qBACzG;oBACD;wBACE,IAAI,EAAE,CAAC;wBACP,MAAM,EAAE,kBAAkB;wBAC1B,GAAG,EAAE,iKAAiK;qBACvK;oBACD;wBACE,IAAI,EAAE,CAAC;wBACP,MAAM,EAAE,YAAY;wBACpB,OAAO,EAAE;4BACP,wDAAwD;4BACxD,kEAAkE;4BAClE,8EAA8E;4BAC9E,+EAA+E;4BAC/E,wEAAwE;yBACzE;qBACF;iBACF;aACF,CAAC;QACJ,CAAC;KACF;IACD;QACE,IAAI,EAAE,mBAAmB;QACzB,WAAW,EACT,6EAA6E;YAC7E,sEAAsE;YACtE,2DAA2D;QAC7D,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;YACf,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,2CAA2C,CAAC;YAC3E,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gDAAgD,CAAC;YACjF,eAAe,EAAE,CAAC;iBACf,OAAO,EAAE;iBACT,QAAQ,EAAE;iBACV,OAAO,CAAC,IAAI,CAAC;iBACb,QAAQ,CAAC,wDAAwD,CAAC;SACtE,CAAC;QACF,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,CACxB,gBAAgB,CACd,MAA8E,CAC/E;KACJ;CACF,CAAC"}
1
+ {"version":3,"file":"forge.facade.js","sourceRoot":"","sources":["../../src/facades/forge.facade.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
File without changes
@@ -11,21 +11,4 @@ interface InstallKnowledgeParams {
11
11
  generateFacades?: boolean;
12
12
  }
13
13
  export declare function installKnowledge(params: InstallKnowledgeParams): Promise<InstallKnowledgeResult>;
14
- /**
15
- * Patch the agent's src/index.ts to add imports and facade registrations
16
- * for new domains.
17
- *
18
- * Anchor patterns:
19
- * - Import: insert before `import { createCoreFacade }`
20
- * - Facade array: insert before `createCoreFacade(`
21
- */
22
- export declare function patchIndexTs(source: string, newDomains: string[], hasBrain: boolean): string | null;
23
- /**
24
- * Patch the agent's src/activation/claude-md-content.ts to add
25
- * facade table rows for new domains.
26
- *
27
- * Primary anchor: line containing `| Memory search |` (newer agents)
28
- * Fallback anchor: line containing `## Intent Detection` (older agents without memory/brain rows)
29
- */
30
- export declare function patchClaudeMdContent(source: string, agentId: string, newDomains: string[]): string | null;
31
14
  export {};
@@ -2,6 +2,7 @@ import { existsSync, readFileSync, writeFileSync, readdirSync, copyFileSync, mkd
2
2
  import { join, basename } from 'node:path';
3
3
  import { execFileSync } from 'node:child_process';
4
4
  import { generateDomainFacade, pascalCase, capitalize } from './templates/domain-facade.js';
5
+ import { patchIndexTs, patchClaudeMdContent } from './patching.js';
5
6
  const VALID_TYPES = new Set(['pattern', 'anti-pattern', 'rule']);
6
7
  const VALID_SEVERITIES = new Set(['critical', 'warning', 'suggestion']);
7
8
  // ---------- Vault-only facade generator ----------
@@ -338,100 +339,5 @@ function validateBundle(bundle, file) {
338
339
  }
339
340
  return issues;
340
341
  }
341
- // ---------- Source file patching ----------
342
- /**
343
- * Patch the agent's src/index.ts to add imports and facade registrations
344
- * for new domains.
345
- *
346
- * Anchor patterns:
347
- * - Import: insert before `import { createCoreFacade }`
348
- * - Facade array: insert before `createCoreFacade(`
349
- */
350
- export function patchIndexTs(source, newDomains, hasBrain) {
351
- // Filter out domains whose imports already exist (idempotent)
352
- const domainsToImport = newDomains.filter((d) => {
353
- const fn = `create${pascalCase(d)}Facade`;
354
- return !source.includes(`import { ${fn} }`);
355
- });
356
- // Filter out domains whose facade calls already exist
357
- const domainsToRegister = newDomains.filter((d) => {
358
- const fn = `create${pascalCase(d)}Facade(`;
359
- return !source.includes(fn);
360
- });
361
- // Nothing to patch
362
- if (domainsToImport.length === 0 && domainsToRegister.length === 0) {
363
- return source;
364
- }
365
- let patched = source;
366
- // ── Insert imports ──
367
- if (domainsToImport.length > 0) {
368
- const importAnchor = /^(import \{ createCoreFacade \}.*$)/m;
369
- if (!importAnchor.test(patched))
370
- return null;
371
- const newImports = domainsToImport
372
- .map((d) => {
373
- const fn = `create${pascalCase(d)}Facade`;
374
- return `import { ${fn} } from './facades/${d}.facade.js';`;
375
- })
376
- .join('\n');
377
- patched = patched.replace(importAnchor, `${newImports}\n$1`);
378
- }
379
- // ── Insert facade creations ──
380
- if (domainsToRegister.length > 0) {
381
- const facadeAnchor = /^(\s+createCoreFacade\()/m;
382
- if (!facadeAnchor.test(patched))
383
- return null;
384
- const newCreations = domainsToRegister
385
- .map((d) => {
386
- const fn = `create${pascalCase(d)}Facade`;
387
- const args = hasBrain ? 'vault, brain' : 'vault';
388
- return ` ${fn}(${args}),`;
389
- })
390
- .join('\n');
391
- patched = patched.replace(facadeAnchor, `${newCreations}\n$1`);
392
- }
393
- return patched;
394
- }
395
- /**
396
- * Patch the agent's src/activation/claude-md-content.ts to add
397
- * facade table rows for new domains.
398
- *
399
- * Primary anchor: line containing `| Memory search |` (newer agents)
400
- * Fallback anchor: line containing `## Intent Detection` (older agents without memory/brain rows)
401
- */
402
- export function patchClaudeMdContent(source, agentId, newDomains) {
403
- const facadeId = agentId.replace(/-/g, '_');
404
- const bt = '`';
405
- // Filter out domains whose rows already exist (idempotent)
406
- const domainsToAdd = newDomains.filter((d) => {
407
- const toolName = `${facadeId}_${d.replace(/-/g, '_')}`;
408
- return !source.includes(`${toolName}`);
409
- });
410
- if (domainsToAdd.length === 0)
411
- return source;
412
- // Try primary anchor first, then fallback for older agents
413
- let anchorIdx = source.indexOf("'| Memory search |");
414
- if (anchorIdx === -1) {
415
- // Older agents: insert before the empty line preceding ## Intent Detection
416
- anchorIdx = source.indexOf("'## Intent Detection'");
417
- if (anchorIdx === -1)
418
- return null;
419
- // Back up to include the preceding empty string line ('',)
420
- const emptyLineIdx = source.lastIndexOf("'',", anchorIdx);
421
- if (emptyLineIdx !== -1 && anchorIdx - emptyLineIdx < 20) {
422
- // Find the start of that line (the indentation)
423
- const lineStart = source.lastIndexOf('\n', emptyLineIdx);
424
- anchorIdx = lineStart === -1 ? emptyLineIdx : lineStart + 1;
425
- }
426
- }
427
- const newRows = domainsToAdd.flatMap((d) => {
428
- const toolName = `${facadeId}_${d.replace(/-/g, '_')}`;
429
- return [
430
- ` '| ${d} patterns | ${bt}${toolName}${bt} | ${bt}get_patterns${bt} |',`,
431
- ` '| Search ${d} | ${bt}${toolName}${bt} | ${bt}search${bt} |',`,
432
- ` '| Capture ${d} | ${bt}${toolName}${bt} | ${bt}capture${bt} |',`,
433
- ];
434
- });
435
- return source.slice(0, anchorIdx) + newRows.join('\n') + '\n' + source.slice(anchorIdx);
436
- }
342
+ // patching functions (patchIndexTs, patchClaudeMdContent) are in patching.ts
437
343
  //# sourceMappingURL=knowledge-installer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"knowledge-installer.js","sourceRoot":"","sources":["../src/knowledge-installer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"knowledge-installer.js","sourceRoot":"","sources":["../src/knowledge-installer.ts"],"names":[],"mappings":"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"}
package/dist/lib.d.ts ADDED
@@ -0,0 +1,12 @@
1
+ /**
2
+ * @soleri/forge — Public API
3
+ *
4
+ * Import this for programmatic access to forge functions.
5
+ * The main index.ts starts the MCP server — use this for library usage.
6
+ */
7
+ export { scaffold, previewScaffold, listAgents } from './scaffolder.js';
8
+ export { installKnowledge, generateVaultOnlyDomainFacade } from './knowledge-installer.js';
9
+ export { addDomain } from './domain-manager.js';
10
+ export { patchIndexTs, patchClaudeMdContent } from './patching.js';
11
+ export type { AgentConfig, ScaffoldResult, ScaffoldPreview, AgentInfo, InstallKnowledgeResult, AddDomainResult, } from './types.js';
12
+ export { AgentConfigSchema } from './types.js';
package/dist/lib.js ADDED
@@ -0,0 +1,12 @@
1
+ /**
2
+ * @soleri/forge — Public API
3
+ *
4
+ * Import this for programmatic access to forge functions.
5
+ * The main index.ts starts the MCP server — use this for library usage.
6
+ */
7
+ export { scaffold, previewScaffold, listAgents } from './scaffolder.js';
8
+ export { installKnowledge, generateVaultOnlyDomainFacade } from './knowledge-installer.js';
9
+ export { addDomain } from './domain-manager.js';
10
+ export { patchIndexTs, patchClaudeMdContent } from './patching.js';
11
+ export { AgentConfigSchema } from './types.js';
12
+ //# sourceMappingURL=lib.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lib.js","sourceRoot":"","sources":["../src/lib.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AACxE,OAAO,EAAE,gBAAgB,EAAE,6BAA6B,EAAE,MAAM,0BAA0B,CAAC;AAC3F,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AASnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Patch the agent's src/index.ts to add imports and facade registrations
3
+ * for new domains.
4
+ *
5
+ * Anchor patterns:
6
+ * - Import: insert before `import { createCoreFacade }`
7
+ * - Facade array: insert before `createCoreFacade(`
8
+ */
9
+ export declare function patchIndexTs(source: string, newDomains: string[], hasBrain: boolean): string | null;
10
+ /**
11
+ * Patch the agent's src/activation/claude-md-content.ts to add
12
+ * facade table rows for new domains.
13
+ *
14
+ * Primary anchor: line containing `| Memory search |` (newer agents)
15
+ * Fallback anchor: line containing `## Intent Detection` (older agents without memory/brain rows)
16
+ */
17
+ export declare function patchClaudeMdContent(source: string, agentId: string, newDomains: string[]): string | null;
@@ -0,0 +1,103 @@
1
+ /**
2
+ * Source file patching utilities — shared between knowledge-installer and domain-manager.
3
+ *
4
+ * These functions modify an agent's src/index.ts and src/activation/claude-md-content.ts
5
+ * to register new domain facades and their CLAUDE.md table rows.
6
+ */
7
+ import { pascalCase } from './templates/domain-facade.js';
8
+ /**
9
+ * Patch the agent's src/index.ts to add imports and facade registrations
10
+ * for new domains.
11
+ *
12
+ * Anchor patterns:
13
+ * - Import: insert before `import { createCoreFacade }`
14
+ * - Facade array: insert before `createCoreFacade(`
15
+ */
16
+ export function patchIndexTs(source, newDomains, hasBrain) {
17
+ // Filter out domains whose imports already exist (idempotent)
18
+ const domainsToImport = newDomains.filter((d) => {
19
+ const fn = `create${pascalCase(d)}Facade`;
20
+ return !source.includes(`import { ${fn} }`);
21
+ });
22
+ // Filter out domains whose facade calls already exist
23
+ const domainsToRegister = newDomains.filter((d) => {
24
+ const fn = `create${pascalCase(d)}Facade(`;
25
+ return !source.includes(fn);
26
+ });
27
+ // Nothing to patch
28
+ if (domainsToImport.length === 0 && domainsToRegister.length === 0) {
29
+ return source;
30
+ }
31
+ let patched = source;
32
+ // ── Insert imports ──
33
+ if (domainsToImport.length > 0) {
34
+ const importAnchor = /^(import \{ createCoreFacade \}.*$)/m;
35
+ if (!importAnchor.test(patched))
36
+ return null;
37
+ const newImports = domainsToImport
38
+ .map((d) => {
39
+ const fn = `create${pascalCase(d)}Facade`;
40
+ return `import { ${fn} } from './facades/${d}.facade.js';`;
41
+ })
42
+ .join('\n');
43
+ patched = patched.replace(importAnchor, `${newImports}\n$1`);
44
+ }
45
+ // ── Insert facade creations ──
46
+ if (domainsToRegister.length > 0) {
47
+ const facadeAnchor = /^(\s+createCoreFacade\()/m;
48
+ if (!facadeAnchor.test(patched))
49
+ return null;
50
+ const newCreations = domainsToRegister
51
+ .map((d) => {
52
+ const fn = `create${pascalCase(d)}Facade`;
53
+ const args = hasBrain ? 'vault, brain' : 'vault';
54
+ return ` ${fn}(${args}),`;
55
+ })
56
+ .join('\n');
57
+ patched = patched.replace(facadeAnchor, `${newCreations}\n$1`);
58
+ }
59
+ return patched;
60
+ }
61
+ /**
62
+ * Patch the agent's src/activation/claude-md-content.ts to add
63
+ * facade table rows for new domains.
64
+ *
65
+ * Primary anchor: line containing `| Memory search |` (newer agents)
66
+ * Fallback anchor: line containing `## Intent Detection` (older agents without memory/brain rows)
67
+ */
68
+ export function patchClaudeMdContent(source, agentId, newDomains) {
69
+ const facadeId = agentId.replace(/-/g, '_');
70
+ const bt = '`';
71
+ // Filter out domains whose rows already exist (idempotent)
72
+ const domainsToAdd = newDomains.filter((d) => {
73
+ const toolName = `${facadeId}_${d.replace(/-/g, '_')}`;
74
+ return !source.includes(`${toolName}`);
75
+ });
76
+ if (domainsToAdd.length === 0)
77
+ return source;
78
+ // Try primary anchor first, then fallback for older agents
79
+ let anchorIdx = source.indexOf("'| Memory search |");
80
+ if (anchorIdx === -1) {
81
+ // Older agents: insert before the empty line preceding ## Intent Detection
82
+ anchorIdx = source.indexOf("'## Intent Detection'");
83
+ if (anchorIdx === -1)
84
+ return null;
85
+ // Back up to include the preceding empty string line ('',)
86
+ const emptyLineIdx = source.lastIndexOf("'',", anchorIdx);
87
+ if (emptyLineIdx !== -1 && anchorIdx - emptyLineIdx < 20) {
88
+ // Find the start of that line (the indentation)
89
+ const lineStart = source.lastIndexOf('\n', emptyLineIdx);
90
+ anchorIdx = lineStart === -1 ? emptyLineIdx : lineStart + 1;
91
+ }
92
+ }
93
+ const newRows = domainsToAdd.flatMap((d) => {
94
+ const toolName = `${facadeId}_${d.replace(/-/g, '_')}`;
95
+ return [
96
+ ` '| ${d} patterns | ${bt}${toolName}${bt} | ${bt}get_patterns${bt} |',`,
97
+ ` '| Search ${d} | ${bt}${toolName}${bt} | ${bt}search${bt} |',`,
98
+ ` '| Capture ${d} | ${bt}${toolName}${bt} | ${bt}capture${bt} |',`,
99
+ ];
100
+ });
101
+ return source.slice(0, anchorIdx) + newRows.join('\n') + '\n' + source.slice(anchorIdx);
102
+ }
103
+ //# sourceMappingURL=patching.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"patching.js","sourceRoot":"","sources":["../src/patching.ts"],"names":[],"mappings":"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"}