@soleri/forge 0.0.1 → 4.0.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/CHANGELOG.md +98 -0
- package/README.md +199 -0
- package/dist/facades/forge.facade.d.ts +9 -0
- package/dist/facades/forge.facade.js +134 -0
- package/dist/facades/forge.facade.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +81 -0
- package/dist/index.js.map +1 -0
- package/dist/knowledge-installer.d.ts +31 -0
- package/dist/knowledge-installer.js +437 -0
- package/dist/knowledge-installer.js.map +1 -0
- package/dist/scaffolder.d.ts +13 -0
- package/dist/scaffolder.js +330 -0
- package/dist/scaffolder.js.map +1 -0
- package/dist/templates/activate.d.ts +9 -0
- package/dist/templates/activate.js +139 -0
- package/dist/templates/activate.js.map +1 -0
- package/dist/templates/brain.d.ts +6 -0
- package/dist/templates/brain.js +478 -0
- package/dist/templates/brain.js.map +1 -0
- package/dist/templates/claude-md-template.d.ts +11 -0
- package/dist/templates/claude-md-template.js +73 -0
- package/dist/templates/claude-md-template.js.map +1 -0
- package/dist/templates/core-facade.d.ts +6 -0
- package/dist/templates/core-facade.js +456 -0
- package/dist/templates/core-facade.js.map +1 -0
- package/dist/templates/domain-facade.d.ts +7 -0
- package/dist/templates/domain-facade.js +119 -0
- package/dist/templates/domain-facade.js.map +1 -0
- package/dist/templates/entry-point.d.ts +5 -0
- package/dist/templates/entry-point.js +116 -0
- package/dist/templates/entry-point.js.map +1 -0
- package/dist/templates/facade-factory.d.ts +1 -0
- package/dist/templates/facade-factory.js +63 -0
- package/dist/templates/facade-factory.js.map +1 -0
- package/dist/templates/facade-types.d.ts +1 -0
- package/dist/templates/facade-types.js +46 -0
- package/dist/templates/facade-types.js.map +1 -0
- package/dist/templates/inject-claude-md.d.ts +11 -0
- package/dist/templates/inject-claude-md.js +92 -0
- package/dist/templates/inject-claude-md.js.map +1 -0
- package/dist/templates/intelligence-loader.d.ts +1 -0
- package/dist/templates/intelligence-loader.js +43 -0
- package/dist/templates/intelligence-loader.js.map +1 -0
- package/dist/templates/intelligence-types.d.ts +1 -0
- package/dist/templates/intelligence-types.js +24 -0
- package/dist/templates/intelligence-types.js.map +1 -0
- package/dist/templates/llm-client.d.ts +7 -0
- package/dist/templates/llm-client.js +300 -0
- package/dist/templates/llm-client.js.map +1 -0
- package/dist/templates/llm-key-pool.d.ts +7 -0
- package/dist/templates/llm-key-pool.js +211 -0
- package/dist/templates/llm-key-pool.js.map +1 -0
- package/dist/templates/llm-types.d.ts +5 -0
- package/dist/templates/llm-types.js +161 -0
- package/dist/templates/llm-types.js.map +1 -0
- package/dist/templates/llm-utils.d.ts +5 -0
- package/dist/templates/llm-utils.js +260 -0
- package/dist/templates/llm-utils.js.map +1 -0
- package/dist/templates/package-json.d.ts +2 -0
- package/dist/templates/package-json.js +37 -0
- package/dist/templates/package-json.js.map +1 -0
- package/dist/templates/persona.d.ts +2 -0
- package/dist/templates/persona.js +42 -0
- package/dist/templates/persona.js.map +1 -0
- package/dist/templates/planner.d.ts +5 -0
- package/dist/templates/planner.js +150 -0
- package/dist/templates/planner.js.map +1 -0
- package/dist/templates/readme.d.ts +5 -0
- package/dist/templates/readme.js +316 -0
- package/dist/templates/readme.js.map +1 -0
- package/dist/templates/setup-script.d.ts +6 -0
- package/dist/templates/setup-script.js +112 -0
- package/dist/templates/setup-script.js.map +1 -0
- package/dist/templates/test-brain.d.ts +6 -0
- package/dist/templates/test-brain.js +474 -0
- package/dist/templates/test-brain.js.map +1 -0
- package/dist/templates/test-facades.d.ts +6 -0
- package/dist/templates/test-facades.js +649 -0
- package/dist/templates/test-facades.js.map +1 -0
- package/dist/templates/test-llm.d.ts +7 -0
- package/dist/templates/test-llm.js +574 -0
- package/dist/templates/test-llm.js.map +1 -0
- package/dist/templates/test-loader.d.ts +5 -0
- package/dist/templates/test-loader.js +146 -0
- package/dist/templates/test-loader.js.map +1 -0
- package/dist/templates/test-planner.d.ts +5 -0
- package/dist/templates/test-planner.js +271 -0
- package/dist/templates/test-planner.js.map +1 -0
- package/dist/templates/test-vault.d.ts +5 -0
- package/dist/templates/test-vault.js +380 -0
- package/dist/templates/test-vault.js.map +1 -0
- package/dist/templates/tsconfig.d.ts +1 -0
- package/dist/templates/tsconfig.js +25 -0
- package/dist/templates/tsconfig.js.map +1 -0
- package/dist/templates/vault.d.ts +5 -0
- package/dist/templates/vault.js +263 -0
- package/dist/templates/vault.js.map +1 -0
- package/dist/templates/vitest-config.d.ts +1 -0
- package/dist/templates/vitest-config.js +27 -0
- package/dist/templates/vitest-config.js.map +1 -0
- package/dist/types.d.ts +89 -0
- package/dist/types.js +21 -0
- package/dist/types.js.map +1 -0
- package/package.json +42 -4
- package/src/__tests__/knowledge-installer.test.ts +805 -0
- package/src/__tests__/scaffolder.test.ts +323 -0
- package/src/facades/forge.facade.ts +150 -0
- package/src/index.ts +101 -0
- package/src/knowledge-installer.ts +532 -0
- package/src/scaffolder.ts +386 -0
- package/src/templates/activate.ts +145 -0
- package/src/templates/claude-md-template.ts +137 -0
- package/src/templates/core-facade.ts +457 -0
- package/src/templates/domain-facade.ts +121 -0
- package/src/templates/entry-point.ts +120 -0
- package/src/templates/inject-claude-md.ts +94 -0
- package/src/templates/llm-client.ts +301 -0
- package/src/templates/package-json.ts +39 -0
- package/src/templates/persona.ts +45 -0
- package/src/templates/readme.ts +319 -0
- package/src/templates/setup-script.ts +113 -0
- package/src/templates/test-facades.ts +656 -0
- package/src/templates/tsconfig.ts +25 -0
- package/src/templates/vitest-config.ts +26 -0
- package/src/types.ts +68 -0
- package/tsconfig.json +21 -0
- package/vitest.config.ts +15 -0
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
export function generateVitestConfig(): string {
|
|
2
|
+
return `import { defineConfig } from 'vitest/config';
|
|
3
|
+
|
|
4
|
+
export default defineConfig({
|
|
5
|
+
test: {
|
|
6
|
+
environment: 'node',
|
|
7
|
+
pool: 'forks',
|
|
8
|
+
poolOptions: {
|
|
9
|
+
forks: {
|
|
10
|
+
singleFork: true,
|
|
11
|
+
maxForks: 2,
|
|
12
|
+
minForks: 1,
|
|
13
|
+
},
|
|
14
|
+
},
|
|
15
|
+
testTimeout: 30_000,
|
|
16
|
+
hookTimeout: 10_000,
|
|
17
|
+
teardownTimeout: 5_000,
|
|
18
|
+
coverage: {
|
|
19
|
+
provider: 'v8',
|
|
20
|
+
include: ['src/**/*.ts'],
|
|
21
|
+
exclude: ['src/**/*.test.ts', 'src/__tests__/**', 'src/index.ts'],
|
|
22
|
+
},
|
|
23
|
+
},
|
|
24
|
+
});
|
|
25
|
+
`;
|
|
26
|
+
}
|
package/src/types.ts
ADDED
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
|
|
3
|
+
/** Agent configuration — everything needed to scaffold */
|
|
4
|
+
export const AgentConfigSchema = z.object({
|
|
5
|
+
/** Agent identifier (kebab-case, used for directory and package name) */
|
|
6
|
+
id: z.string().regex(/^[a-z][a-z0-9-]*$/, 'Must be kebab-case (e.g., "gaudi", "my-agent")'),
|
|
7
|
+
/** Human-readable display name */
|
|
8
|
+
name: z.string().min(1).max(50),
|
|
9
|
+
/** One-line role description */
|
|
10
|
+
role: z.string().min(1).max(100),
|
|
11
|
+
/** Longer description of what this agent does */
|
|
12
|
+
description: z.string().min(10).max(500),
|
|
13
|
+
/** Knowledge domains this agent covers */
|
|
14
|
+
domains: z.array(z.string().min(1)).min(1).max(20),
|
|
15
|
+
/** Core principles the agent follows (3-7 recommended) */
|
|
16
|
+
principles: z.array(z.string()).min(1).max(10),
|
|
17
|
+
/** Greeting message when agent introduces itself */
|
|
18
|
+
greeting: z.string().min(10).max(300),
|
|
19
|
+
/** Output directory (parent — agent dir will be created inside) */
|
|
20
|
+
outputDir: z.string().min(1),
|
|
21
|
+
});
|
|
22
|
+
|
|
23
|
+
export type AgentConfig = z.infer<typeof AgentConfigSchema>;
|
|
24
|
+
|
|
25
|
+
/** Result of scaffolding */
|
|
26
|
+
export interface ScaffoldResult {
|
|
27
|
+
success: boolean;
|
|
28
|
+
agentDir: string;
|
|
29
|
+
filesCreated: string[];
|
|
30
|
+
domains: string[];
|
|
31
|
+
summary: string;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
/** Agent info for listing */
|
|
35
|
+
export interface AgentInfo {
|
|
36
|
+
id: string;
|
|
37
|
+
name: string;
|
|
38
|
+
role: string;
|
|
39
|
+
path: string;
|
|
40
|
+
domains: string[];
|
|
41
|
+
hasNodeModules: boolean;
|
|
42
|
+
hasDistDir: boolean;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
/** Preview of what will be created */
|
|
46
|
+
export interface ScaffoldPreview {
|
|
47
|
+
agentDir: string;
|
|
48
|
+
files: Array<{ path: string; description: string }>;
|
|
49
|
+
facades: Array<{ name: string; ops: string[] }>;
|
|
50
|
+
domains: string[];
|
|
51
|
+
persona: { name: string; role: string };
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
/** Result of installing knowledge packs into an existing agent */
|
|
55
|
+
export interface InstallKnowledgeResult {
|
|
56
|
+
success: boolean;
|
|
57
|
+
agentPath: string;
|
|
58
|
+
agentId: string;
|
|
59
|
+
bundlesInstalled: number;
|
|
60
|
+
entriesTotal: number;
|
|
61
|
+
domainsAdded: string[];
|
|
62
|
+
domainsUpdated: string[];
|
|
63
|
+
facadesGenerated: string[];
|
|
64
|
+
sourceFilesPatched: string[];
|
|
65
|
+
buildOutput: string;
|
|
66
|
+
warnings: string[];
|
|
67
|
+
summary: string;
|
|
68
|
+
}
|
package/tsconfig.json
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
{
|
|
2
|
+
"compilerOptions": {
|
|
3
|
+
"target": "ES2022",
|
|
4
|
+
"module": "NodeNext",
|
|
5
|
+
"moduleResolution": "NodeNext",
|
|
6
|
+
"lib": ["ES2022"],
|
|
7
|
+
"outDir": "dist",
|
|
8
|
+
"rootDir": "src",
|
|
9
|
+
"strict": true,
|
|
10
|
+
"esModuleInterop": true,
|
|
11
|
+
"resolveJsonModule": true,
|
|
12
|
+
"declaration": true,
|
|
13
|
+
"sourceMap": true,
|
|
14
|
+
"forceConsistentCasingInFileNames": true,
|
|
15
|
+
"skipLibCheck": true,
|
|
16
|
+
"noEmitOnError": true,
|
|
17
|
+
"composite": true
|
|
18
|
+
},
|
|
19
|
+
"include": ["src/**/*.ts"],
|
|
20
|
+
"exclude": ["node_modules", "dist", "src/**/*.test.ts", "src/__tests__/**"]
|
|
21
|
+
}
|
package/vitest.config.ts
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { defineConfig } from 'vitest/config';
|
|
2
|
+
|
|
3
|
+
export default defineConfig({
|
|
4
|
+
test: {
|
|
5
|
+
environment: 'node',
|
|
6
|
+
pool: 'forks',
|
|
7
|
+
poolOptions: { forks: { singleFork: true } },
|
|
8
|
+
testTimeout: 30_000,
|
|
9
|
+
coverage: {
|
|
10
|
+
provider: 'v8',
|
|
11
|
+
include: ['src/**/*.ts'],
|
|
12
|
+
exclude: ['src/**/*.test.ts', 'src/__tests__/**', 'src/index.ts'],
|
|
13
|
+
},
|
|
14
|
+
},
|
|
15
|
+
});
|