@agentkitforge/core 0.1.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 +35 -0
- package/CLI.md +177 -0
- package/LICENSE +69 -0
- package/README.md +326 -0
- package/SECURITY.md +33 -0
- package/SPEC.md +159 -0
- package/VERSIONING.md +45 -0
- package/dist/adapters/claudeCode.d.ts +11 -0
- package/dist/adapters/claudeCode.js +120 -0
- package/dist/adapters/claudeCode.js.map +1 -0
- package/dist/adapters/codex.d.ts +12 -0
- package/dist/adapters/codex.js +141 -0
- package/dist/adapters/codex.js.map +1 -0
- package/dist/app/exampleInputDocuments.d.ts +21 -0
- package/dist/app/exampleInputDocuments.js +24 -0
- package/dist/app/exampleInputDocuments.js.map +1 -0
- package/dist/app/inspect.d.ts +15 -0
- package/dist/app/inspect.js +96 -0
- package/dist/app/inspect.js.map +1 -0
- package/dist/app/loadAsDraft.d.ts +7 -0
- package/dist/app/loadAsDraft.js +148 -0
- package/dist/app/loadAsDraft.js.map +1 -0
- package/dist/app/summary.d.ts +17 -0
- package/dist/app/summary.js +89 -0
- package/dist/app/summary.js.map +1 -0
- package/dist/artifacts/naming.d.ts +8 -0
- package/dist/artifacts/naming.js +26 -0
- package/dist/artifacts/naming.js.map +1 -0
- package/dist/builder/draftRequest.d.ts +24 -0
- package/dist/builder/draftRequest.js +87 -0
- package/dist/builder/draftRequest.js.map +1 -0
- package/dist/builder/instructions.d.ts +1 -0
- package/dist/builder/instructions.js +30 -0
- package/dist/builder/instructions.js.map +1 -0
- package/dist/builder/revisionRequest.d.ts +24 -0
- package/dist/builder/revisionRequest.js +94 -0
- package/dist/builder/revisionRequest.js.map +1 -0
- package/dist/cli/index.d.ts +2 -0
- package/dist/cli/index.js +5 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/program.d.ts +2 -0
- package/dist/cli/program.js +273 -0
- package/dist/cli/program.js.map +1 -0
- package/dist/context/builder.d.ts +2 -0
- package/dist/context/builder.js +159 -0
- package/dist/context/builder.js.map +1 -0
- package/dist/context/types.d.ts +23 -0
- package/dist/context/types.js +2 -0
- package/dist/context/types.js.map +1 -0
- package/dist/domains/catalog.d.ts +7 -0
- package/dist/domains/catalog.js +45 -0
- package/dist/domains/catalog.js.map +1 -0
- package/dist/draft/render.d.ts +13 -0
- package/dist/draft/render.js +207 -0
- package/dist/draft/render.js.map +1 -0
- package/dist/draft/schema.d.ts +107 -0
- package/dist/draft/schema.js +78 -0
- package/dist/draft/schema.js.map +1 -0
- package/dist/draft/session.d.ts +56 -0
- package/dist/draft/session.js +115 -0
- package/dist/draft/session.js.map +1 -0
- package/dist/export/onefile.d.ts +1 -0
- package/dist/export/onefile.js +109 -0
- package/dist/export/onefile.js.map +1 -0
- package/dist/fs/safety.d.ts +26 -0
- package/dist/fs/safety.js +187 -0
- package/dist/fs/safety.js.map +1 -0
- package/dist/index.d.ts +45 -0
- package/dist/index.js +26 -0
- package/dist/index.js.map +1 -0
- package/dist/init/create.d.ts +14 -0
- package/dist/init/create.js +48 -0
- package/dist/init/create.js.map +1 -0
- package/dist/init/templates.d.ts +12 -0
- package/dist/init/templates.js +202 -0
- package/dist/init/templates.js.map +1 -0
- package/dist/package/packager.d.ts +5 -0
- package/dist/package/packager.js +30 -0
- package/dist/package/packager.js.map +1 -0
- package/dist/package/reader.d.ts +3 -0
- package/dist/package/reader.js +21 -0
- package/dist/package/reader.js.map +1 -0
- package/dist/prompts/prompts.d.ts +35 -0
- package/dist/prompts/prompts.js +206 -0
- package/dist/prompts/prompts.js.map +1 -0
- package/dist/prompts/schema.d.ts +71 -0
- package/dist/prompts/schema.js +46 -0
- package/dist/prompts/schema.js.map +1 -0
- package/dist/providers/catalog.d.ts +15 -0
- package/dist/providers/catalog.js +211 -0
- package/dist/providers/catalog.js.map +1 -0
- package/dist/providers/types.d.ts +30 -0
- package/dist/providers/types.js +2 -0
- package/dist/providers/types.js.map +1 -0
- package/dist/schema/agentkit.d.ts +54 -0
- package/dist/schema/agentkit.js +63 -0
- package/dist/schema/agentkit.js.map +1 -0
- package/dist/types.d.ts +69 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/dist/validation/skill.d.ts +3 -0
- package/dist/validation/skill.js +83 -0
- package/dist/validation/skill.js.map +1 -0
- package/dist/validation/validator.d.ts +2 -0
- package/dist/validation/validator.js +247 -0
- package/dist/validation/validator.js.map +1 -0
- package/package.json +57 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAEhD,MAAM,OAAO,GAAG,gBAAgB,EAAE,CAAC;AACnC,MAAM,OAAO,CAAC,UAAU,EAAE,CAAC"}
|
|
@@ -0,0 +1,273 @@
|
|
|
1
|
+
import { Command } from "commander";
|
|
2
|
+
import { mkdir, readFile, writeFile } from "node:fs/promises";
|
|
3
|
+
import path from "node:path";
|
|
4
|
+
import { exportAgentKitToClaudeCode } from "../adapters/claudeCode.js";
|
|
5
|
+
import { exportAgentKitToCodex } from "../adapters/codex.js";
|
|
6
|
+
import { inspectAgentKitCandidate } from "../app/inspect.js";
|
|
7
|
+
import { getAgentKitSummary } from "../app/summary.js";
|
|
8
|
+
import { loadAgentKitAsDraft } from "../app/loadAsDraft.js";
|
|
9
|
+
import { createAgentKitDraftRequest } from "../builder/draftRequest.js";
|
|
10
|
+
import { createAgentKitDraftRevisionRequest } from "../builder/revisionRequest.js";
|
|
11
|
+
import { buildAgentKitContext } from "../context/builder.js";
|
|
12
|
+
import { renderAgentKitDraft } from "../draft/render.js";
|
|
13
|
+
import { agentKitDraftSchema } from "../draft/schema.js";
|
|
14
|
+
import { exportOneFile } from "../export/onefile.js";
|
|
15
|
+
import { createAgentKit } from "../init/create.js";
|
|
16
|
+
import { packageAgentKit } from "../package/packager.js";
|
|
17
|
+
import { listPreparedPrompts, renderPreparedPrompt, validatePreparedPromptInputs } from "../prompts/prompts.js";
|
|
18
|
+
import { validateAgentKit } from "../validation/validator.js";
|
|
19
|
+
const profiles = ["local-valid", "publishable", "trusted", "verified"];
|
|
20
|
+
const templateNames = ["blank", "financial-review"];
|
|
21
|
+
const contextModes = ["all", "triggered"];
|
|
22
|
+
const contextTargets = ["openai", "chatgpt", "claude", "generic"];
|
|
23
|
+
export function createCliProgram() {
|
|
24
|
+
const program = new Command()
|
|
25
|
+
.name("agentkitforge")
|
|
26
|
+
.description("AgentKitForge core CLI")
|
|
27
|
+
.version("0.1.0");
|
|
28
|
+
program
|
|
29
|
+
.command("validate")
|
|
30
|
+
.argument("<path>", "Agent Kit folder")
|
|
31
|
+
.option("--profile <profile>", "Validation profile", "local-valid")
|
|
32
|
+
.action(async (kitPath, options) => {
|
|
33
|
+
if (!profiles.includes(options.profile)) {
|
|
34
|
+
throw new Error(`Invalid profile: ${options.profile}`);
|
|
35
|
+
}
|
|
36
|
+
const report = await validateAgentKit(kitPath, options.profile);
|
|
37
|
+
console.log(JSON.stringify(report, null, 2));
|
|
38
|
+
process.exitCode = report.valid ? 0 : 1;
|
|
39
|
+
});
|
|
40
|
+
program
|
|
41
|
+
.command("inspect")
|
|
42
|
+
.argument("<path>", "Folder to inspect")
|
|
43
|
+
.action(async (inputPath) => {
|
|
44
|
+
console.log(JSON.stringify(await inspectAgentKitCandidate(inputPath), null, 2));
|
|
45
|
+
});
|
|
46
|
+
program
|
|
47
|
+
.command("summarize")
|
|
48
|
+
.argument("<path>", "Agent Kit folder")
|
|
49
|
+
.action(async (kitPath) => {
|
|
50
|
+
console.log(JSON.stringify(await getAgentKitSummary(kitPath), null, 2));
|
|
51
|
+
});
|
|
52
|
+
program
|
|
53
|
+
.command("load-as-draft")
|
|
54
|
+
.argument("<path>", "Agent Kit folder")
|
|
55
|
+
.requiredOption("--out <file>", "Output draft JSON file")
|
|
56
|
+
.action(async (kitPath, options) => {
|
|
57
|
+
const result = await loadAgentKitAsDraft(kitPath);
|
|
58
|
+
const outPath = path.resolve(options.out);
|
|
59
|
+
await mkdir(path.dirname(outPath), { recursive: true });
|
|
60
|
+
await writeFile(outPath, `${JSON.stringify(result, null, 2)}\n`, "utf8");
|
|
61
|
+
console.log(outPath);
|
|
62
|
+
});
|
|
63
|
+
program
|
|
64
|
+
.command("init")
|
|
65
|
+
.argument("<path>", "New Agent Kit folder")
|
|
66
|
+
.requiredOption("--template <template>", "Template name: blank|financial-review")
|
|
67
|
+
.requiredOption("--id <id>", "Agent Kit id")
|
|
68
|
+
.requiredOption("--name <name>", "Agent Kit name")
|
|
69
|
+
.requiredOption("--description <description>", "Agent Kit description")
|
|
70
|
+
.option("--force", "Allow initialization in a non-empty directory")
|
|
71
|
+
.action(async (kitPath, options) => {
|
|
72
|
+
if (!templateNames.includes(options.template)) {
|
|
73
|
+
throw new Error(`Invalid template: ${options.template}`);
|
|
74
|
+
}
|
|
75
|
+
const result = await createAgentKit(kitPath, {
|
|
76
|
+
template: options.template,
|
|
77
|
+
id: options.id,
|
|
78
|
+
name: options.name,
|
|
79
|
+
description: options.description,
|
|
80
|
+
force: options.force === true
|
|
81
|
+
});
|
|
82
|
+
console.log(JSON.stringify(result, null, 2));
|
|
83
|
+
});
|
|
84
|
+
program
|
|
85
|
+
.command("export-onefile")
|
|
86
|
+
.argument("<path>", "Agent Kit folder")
|
|
87
|
+
.requiredOption("--out <file>", "Output Markdown file")
|
|
88
|
+
.action(async (kitPath, options) => {
|
|
89
|
+
const outPath = await exportOneFile(kitPath, options.out);
|
|
90
|
+
console.log(outPath);
|
|
91
|
+
});
|
|
92
|
+
program
|
|
93
|
+
.command("render-draft")
|
|
94
|
+
.argument("<draft-json-file>", "Agent Kit draft JSON file")
|
|
95
|
+
.argument("<target-dir>", "Output Agent Kit folder")
|
|
96
|
+
.option("--force", "Allow rendering into a non-empty directory")
|
|
97
|
+
.action(async (draftJsonFile, targetDir, options) => {
|
|
98
|
+
const draftText = await readFile(draftJsonFile, "utf8");
|
|
99
|
+
const draft = JSON.parse(draftText);
|
|
100
|
+
const result = await renderAgentKitDraft(draft, targetDir, {
|
|
101
|
+
force: options.force === true
|
|
102
|
+
});
|
|
103
|
+
console.log(JSON.stringify(result, null, 2));
|
|
104
|
+
});
|
|
105
|
+
program
|
|
106
|
+
.command("draft-request")
|
|
107
|
+
.requiredOption("--request <text>", "Natural language Agent Kit request")
|
|
108
|
+
.requiredOption("--out <file>", "Output JSON request file")
|
|
109
|
+
.option("--domain <domain>", "Domain or subject area")
|
|
110
|
+
.option("--target-user <value>", "Target user. Repeat for multiple users.", collectValues, [])
|
|
111
|
+
.option("--level <level>", "Desired validation level", "local-valid")
|
|
112
|
+
.action(async (options) => {
|
|
113
|
+
if (!profiles.includes(options.level)) {
|
|
114
|
+
throw new Error(`Invalid validation level: ${options.level}`);
|
|
115
|
+
}
|
|
116
|
+
const request = createAgentKitDraftRequest({
|
|
117
|
+
userRequest: options.request,
|
|
118
|
+
domain: options.domain,
|
|
119
|
+
targetUsers: options.targetUser,
|
|
120
|
+
desiredValidationLevel: options.level
|
|
121
|
+
});
|
|
122
|
+
const outPath = path.resolve(options.out);
|
|
123
|
+
await mkdir(path.dirname(outPath), { recursive: true });
|
|
124
|
+
await writeFile(outPath, `${JSON.stringify(request, null, 2)}\n`, "utf8");
|
|
125
|
+
console.log(outPath);
|
|
126
|
+
});
|
|
127
|
+
program
|
|
128
|
+
.command("draft-revision-request")
|
|
129
|
+
.argument("<current-draft-json-file>", "Current AgentKitDraft JSON file")
|
|
130
|
+
.requiredOption("--change <text>", "Requested draft change")
|
|
131
|
+
.requiredOption("--out <file>", "Output JSON revision request file")
|
|
132
|
+
.option("--original-request <text>", "Original user request")
|
|
133
|
+
.option("--level <level>", "Desired validation level", "local-valid")
|
|
134
|
+
.action(async (currentDraftJsonFile, options) => {
|
|
135
|
+
if (!profiles.includes(options.level)) {
|
|
136
|
+
throw new Error(`Invalid validation level: ${options.level}`);
|
|
137
|
+
}
|
|
138
|
+
const currentDraftInput = JSON.parse(await readFile(currentDraftJsonFile, "utf8"));
|
|
139
|
+
const currentDraft = agentKitDraftSchema.parse(currentDraftInput);
|
|
140
|
+
const request = createAgentKitDraftRevisionRequest({
|
|
141
|
+
currentDraft,
|
|
142
|
+
changeRequest: options.change,
|
|
143
|
+
originalRequest: options.originalRequest,
|
|
144
|
+
desiredValidationLevel: options.level
|
|
145
|
+
});
|
|
146
|
+
const outPath = path.resolve(options.out);
|
|
147
|
+
await mkdir(path.dirname(outPath), { recursive: true });
|
|
148
|
+
await writeFile(outPath, `${JSON.stringify(request, null, 2)}\n`, "utf8");
|
|
149
|
+
console.log(outPath);
|
|
150
|
+
});
|
|
151
|
+
program
|
|
152
|
+
.command("package")
|
|
153
|
+
.argument("<path>", "Agent Kit folder")
|
|
154
|
+
.requiredOption("--out <file>", "Output .agentkit.zip file")
|
|
155
|
+
.action(async (kitPath, options) => {
|
|
156
|
+
const outPath = await packageAgentKit(kitPath, options.out);
|
|
157
|
+
console.log(outPath);
|
|
158
|
+
});
|
|
159
|
+
program
|
|
160
|
+
.command("build-context")
|
|
161
|
+
.argument("<kit-path>", "Agent Kit folder")
|
|
162
|
+
.requiredOption("--out <file>", "Output JSON context file")
|
|
163
|
+
.option("--task <text>", "User task for triggered matching")
|
|
164
|
+
.option("--mode <mode>", "Context mode: all|triggered", "triggered")
|
|
165
|
+
.option("--target <target>", "Context target: openai|chatgpt|claude|generic", "generic")
|
|
166
|
+
.option("--no-policies", "Exclude policies")
|
|
167
|
+
.option("--no-templates", "Exclude templates")
|
|
168
|
+
.option("--no-workflows", "Exclude workflows")
|
|
169
|
+
.option("--include-references", "Include references")
|
|
170
|
+
.option("--no-prompts", "Exclude prepared prompts")
|
|
171
|
+
.option("--max-skills <count>", "Maximum skills for triggered mode", parseInteger)
|
|
172
|
+
.action(async (kitPath, options) => {
|
|
173
|
+
if (!contextModes.includes(options.mode)) {
|
|
174
|
+
throw new Error(`Invalid context mode: ${options.mode}`);
|
|
175
|
+
}
|
|
176
|
+
if (!contextTargets.includes(options.target)) {
|
|
177
|
+
throw new Error(`Invalid context target: ${options.target}`);
|
|
178
|
+
}
|
|
179
|
+
const context = await buildAgentKitContext({
|
|
180
|
+
kitPath,
|
|
181
|
+
userTask: options.task,
|
|
182
|
+
mode: options.mode,
|
|
183
|
+
target: options.target,
|
|
184
|
+
includePolicies: options.policies,
|
|
185
|
+
includeTemplates: options.templates,
|
|
186
|
+
includeWorkflows: options.workflows,
|
|
187
|
+
includeReferences: options.includeReferences === true,
|
|
188
|
+
includePrompts: options.prompts,
|
|
189
|
+
maxSkills: options.maxSkills
|
|
190
|
+
});
|
|
191
|
+
const outPath = path.resolve(options.out);
|
|
192
|
+
await mkdir(path.dirname(outPath), { recursive: true });
|
|
193
|
+
await writeFile(outPath, `${JSON.stringify(context, null, 2)}\n`, "utf8");
|
|
194
|
+
console.log(outPath);
|
|
195
|
+
});
|
|
196
|
+
program
|
|
197
|
+
.command("list-prompts")
|
|
198
|
+
.argument("<kit-path>", "Agent Kit folder")
|
|
199
|
+
.action(async (kitPath) => {
|
|
200
|
+
console.log(JSON.stringify(await listPreparedPrompts(kitPath), null, 2));
|
|
201
|
+
});
|
|
202
|
+
program
|
|
203
|
+
.command("render-prompt")
|
|
204
|
+
.argument("<kit-path>", "Agent Kit folder")
|
|
205
|
+
.argument("<prompt-id>", "Prepared prompt id")
|
|
206
|
+
.requiredOption("--inputs <json-file>", "Input values JSON file")
|
|
207
|
+
.option("--out <file>", "Output rendered prompt file")
|
|
208
|
+
.action(async (kitPath, promptId, options) => {
|
|
209
|
+
const prompt = await findPreparedPrompt(kitPath, promptId);
|
|
210
|
+
const inputValues = JSON.parse(await readFile(options.inputs, "utf8"));
|
|
211
|
+
const rendered = renderPreparedPrompt(prompt, inputValues);
|
|
212
|
+
if (options.out) {
|
|
213
|
+
const outPath = path.resolve(options.out);
|
|
214
|
+
await mkdir(path.dirname(outPath), { recursive: true });
|
|
215
|
+
await writeFile(outPath, rendered, "utf8");
|
|
216
|
+
}
|
|
217
|
+
else {
|
|
218
|
+
console.log(rendered);
|
|
219
|
+
}
|
|
220
|
+
});
|
|
221
|
+
program
|
|
222
|
+
.command("validate-prompt-inputs")
|
|
223
|
+
.argument("<kit-path>", "Agent Kit folder")
|
|
224
|
+
.argument("<prompt-id>", "Prepared prompt id")
|
|
225
|
+
.requiredOption("--inputs <json-file>", "Input values JSON file")
|
|
226
|
+
.action(async (kitPath, promptId, options) => {
|
|
227
|
+
const prompt = await findPreparedPrompt(kitPath, promptId);
|
|
228
|
+
const inputValues = JSON.parse(await readFile(options.inputs, "utf8"));
|
|
229
|
+
console.log(JSON.stringify(validatePreparedPromptInputs(prompt, inputValues), null, 2));
|
|
230
|
+
});
|
|
231
|
+
program
|
|
232
|
+
.command("export-codex")
|
|
233
|
+
.argument("<kit-path>", "Agent Kit folder")
|
|
234
|
+
.requiredOption("--dest <skills-dir>", "Destination Codex skills directory")
|
|
235
|
+
.option("--force", "Replace this kit's AgentKitForge-generated Codex skill folders")
|
|
236
|
+
.action(async (kitPath, options) => {
|
|
237
|
+
const result = await exportAgentKitToCodex(kitPath, options.dest, {
|
|
238
|
+
force: options.force === true
|
|
239
|
+
});
|
|
240
|
+
console.log(JSON.stringify(result, null, 2));
|
|
241
|
+
});
|
|
242
|
+
program
|
|
243
|
+
.command("export-claude-code")
|
|
244
|
+
.argument("<kit-path>", "Agent Kit folder")
|
|
245
|
+
.requiredOption("--dest <plugins-dir>", "Destination Claude Code plugins directory")
|
|
246
|
+
.option("--force", "Replace this kit's AgentKitForge-generated Claude Code plugin folder")
|
|
247
|
+
.action(async (kitPath, options) => {
|
|
248
|
+
const result = await exportAgentKitToClaudeCode(kitPath, options.dest, {
|
|
249
|
+
force: options.force === true
|
|
250
|
+
});
|
|
251
|
+
console.log(JSON.stringify(result, null, 2));
|
|
252
|
+
});
|
|
253
|
+
return program;
|
|
254
|
+
}
|
|
255
|
+
function collectValues(value, previous) {
|
|
256
|
+
return [...previous, ...value.split(",").map((item) => item.trim()).filter(Boolean)];
|
|
257
|
+
}
|
|
258
|
+
function parseInteger(value) {
|
|
259
|
+
const parsed = Number.parseInt(value, 10);
|
|
260
|
+
if (!Number.isInteger(parsed) || parsed < 1) {
|
|
261
|
+
throw new Error(`Expected a positive integer, received: ${value}`);
|
|
262
|
+
}
|
|
263
|
+
return parsed;
|
|
264
|
+
}
|
|
265
|
+
async function findPreparedPrompt(kitPath, promptId) {
|
|
266
|
+
const prompts = await listPreparedPrompts(kitPath);
|
|
267
|
+
const prompt = prompts.find((entry) => entry.id === promptId);
|
|
268
|
+
if (!prompt) {
|
|
269
|
+
throw new Error(`Prepared prompt not found: ${promptId}`);
|
|
270
|
+
}
|
|
271
|
+
return prompt;
|
|
272
|
+
}
|
|
273
|
+
//# sourceMappingURL=program.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"program.js","sourceRoot":"","sources":["../../src/cli/program.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
import { readFile, stat } from "node:fs/promises";
|
|
2
|
+
import path from "node:path";
|
|
3
|
+
import { resolveInside, safeListFilesRecursive } from "../fs/safety.js";
|
|
4
|
+
import { readAgentKit } from "../package/reader.js";
|
|
5
|
+
const OPTIONAL_DIRECTORIES = [
|
|
6
|
+
{ key: "includePolicies", directory: "policies" },
|
|
7
|
+
{ key: "includeTemplates", directory: "templates" },
|
|
8
|
+
{ key: "includeWorkflows", directory: "workflows" },
|
|
9
|
+
{ key: "includeReferences", directory: "references" },
|
|
10
|
+
{ key: "includePrompts", directory: "prompts" }
|
|
11
|
+
];
|
|
12
|
+
export async function buildAgentKitContext(request) {
|
|
13
|
+
const kit = await readAgentKit(request.kitPath);
|
|
14
|
+
if (!kit.manifest) {
|
|
15
|
+
throw new Error("Unable to build context because agentkit.yaml is invalid.");
|
|
16
|
+
}
|
|
17
|
+
const warnings = [];
|
|
18
|
+
const includedFiles = [];
|
|
19
|
+
const includedSkills = selectSkills(kit.manifest.skills, request, warnings);
|
|
20
|
+
includedFiles.push(await readContextFile(kit.rootPath, "AGENTKIT.md"));
|
|
21
|
+
for (const skill of includedSkills) {
|
|
22
|
+
includedFiles.push(await readContextFile(kit.rootPath, skill.path));
|
|
23
|
+
}
|
|
24
|
+
for (const optionalDirectory of OPTIONAL_DIRECTORIES) {
|
|
25
|
+
if (request[optionalDirectory.key] === true) {
|
|
26
|
+
try {
|
|
27
|
+
includedFiles.push(...(await readDirectoryFiles(kit.rootPath, optionalDirectory.directory, request)));
|
|
28
|
+
}
|
|
29
|
+
catch (error) {
|
|
30
|
+
warnings.push(error instanceof Error ? error.message : `Skipped ${optionalDirectory.directory}`);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
const dedupedFiles = dedupeFiles(includedFiles);
|
|
35
|
+
return {
|
|
36
|
+
systemContext: renderSystemContext(request, dedupedFiles),
|
|
37
|
+
userContext: renderUserContext(request),
|
|
38
|
+
includedFiles: dedupedFiles.map((file) => file.relativePath),
|
|
39
|
+
includedSkills: includedSkills.map((skill) => skill.id),
|
|
40
|
+
warnings
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
function selectSkills(skills, request, warnings) {
|
|
44
|
+
const sortedSkills = [...skills].sort((left, right) => left.id.localeCompare(right.id));
|
|
45
|
+
if (request.mode === "all") {
|
|
46
|
+
return applyMaxSkills(sortedSkills, request.maxSkills);
|
|
47
|
+
}
|
|
48
|
+
const task = request.userTask?.trim() ?? "";
|
|
49
|
+
const matches = sortedSkills
|
|
50
|
+
.map((skill) => ({ skill, score: scoreSkill(skill, task) }))
|
|
51
|
+
.filter((match) => match.score > 0)
|
|
52
|
+
.sort(compareScoredSkills);
|
|
53
|
+
if (matches.length === 0) {
|
|
54
|
+
warnings.push("No specific skill matched the task; included all skills.");
|
|
55
|
+
return applyMaxSkills(sortedSkills, request.maxSkills);
|
|
56
|
+
}
|
|
57
|
+
return applyMaxSkills(matches.map((match) => match.skill), request.maxSkills);
|
|
58
|
+
}
|
|
59
|
+
function scoreSkill(skill, task) {
|
|
60
|
+
if (!task) {
|
|
61
|
+
return 0;
|
|
62
|
+
}
|
|
63
|
+
const taskLower = task.toLowerCase();
|
|
64
|
+
const taskTokens = tokenize(taskLower);
|
|
65
|
+
let score = 0;
|
|
66
|
+
for (const trigger of skill.triggers) {
|
|
67
|
+
const triggerLower = trigger.toLowerCase();
|
|
68
|
+
if (taskLower.includes(triggerLower)) {
|
|
69
|
+
score += 10;
|
|
70
|
+
continue;
|
|
71
|
+
}
|
|
72
|
+
const triggerTokens = tokenize(triggerLower);
|
|
73
|
+
if (triggerTokens.size > 0 && [...triggerTokens].every((token) => taskTokens.has(token))) {
|
|
74
|
+
score += 5;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
const descriptionMatches = [...tokenize(skill.description.toLowerCase())].filter((token) => taskTokens.has(token)).length;
|
|
78
|
+
if (descriptionMatches >= 2) {
|
|
79
|
+
score += descriptionMatches;
|
|
80
|
+
}
|
|
81
|
+
return score;
|
|
82
|
+
}
|
|
83
|
+
function compareScoredSkills(left, right) {
|
|
84
|
+
if (left.score !== right.score) {
|
|
85
|
+
return right.score - left.score;
|
|
86
|
+
}
|
|
87
|
+
return left.skill.id.localeCompare(right.skill.id);
|
|
88
|
+
}
|
|
89
|
+
function applyMaxSkills(skills, maxSkills) {
|
|
90
|
+
if (maxSkills === undefined || maxSkills < 1) {
|
|
91
|
+
return skills;
|
|
92
|
+
}
|
|
93
|
+
return skills.slice(0, maxSkills);
|
|
94
|
+
}
|
|
95
|
+
async function readContextFile(rootPath, relativePath) {
|
|
96
|
+
const resolvedPath = resolveInside(rootPath, relativePath);
|
|
97
|
+
return {
|
|
98
|
+
relativePath: normalizePath(relativePath),
|
|
99
|
+
content: await readFile(resolvedPath, "utf8")
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
async function readDirectoryFiles(rootPath, relativeDirectory, request) {
|
|
103
|
+
const directoryPath = resolveInside(rootPath, relativeDirectory);
|
|
104
|
+
if (!(await existsDirectory(directoryPath))) {
|
|
105
|
+
return [];
|
|
106
|
+
}
|
|
107
|
+
const files = await safeListFilesRecursive(directoryPath, {
|
|
108
|
+
maxFiles: request.maxFiles,
|
|
109
|
+
maxBytes: request.maxBytes
|
|
110
|
+
});
|
|
111
|
+
return Promise.all(files.map((file) => readContextFile(rootPath, path.relative(rootPath, file.absolutePath))));
|
|
112
|
+
}
|
|
113
|
+
function dedupeFiles(files) {
|
|
114
|
+
const seen = new Set();
|
|
115
|
+
const deduped = [];
|
|
116
|
+
for (const file of files) {
|
|
117
|
+
if (seen.has(file.relativePath)) {
|
|
118
|
+
continue;
|
|
119
|
+
}
|
|
120
|
+
seen.add(file.relativePath);
|
|
121
|
+
deduped.push(file);
|
|
122
|
+
}
|
|
123
|
+
return deduped;
|
|
124
|
+
}
|
|
125
|
+
function renderSystemContext(request, files) {
|
|
126
|
+
const header = [
|
|
127
|
+
"AgentKitForge Context",
|
|
128
|
+
`Target: ${request.target}`,
|
|
129
|
+
`Mode: ${request.mode}`,
|
|
130
|
+
"Use the included Agent Kit instructions and skills as authoritative context."
|
|
131
|
+
].join("\n");
|
|
132
|
+
const fileSections = files.map((file) => `\n\n--- FILE: ${file.relativePath} ---\n${file.content.trim()}`);
|
|
133
|
+
return `${header}${fileSections.join("")}\n`;
|
|
134
|
+
}
|
|
135
|
+
function renderUserContext(request) {
|
|
136
|
+
if (!request.userTask) {
|
|
137
|
+
return "No user task was provided.\n";
|
|
138
|
+
}
|
|
139
|
+
return `User task:\n${request.userTask}\n`;
|
|
140
|
+
}
|
|
141
|
+
async function existsDirectory(filePath) {
|
|
142
|
+
try {
|
|
143
|
+
return (await stat(filePath)).isDirectory();
|
|
144
|
+
}
|
|
145
|
+
catch {
|
|
146
|
+
return false;
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
function normalizePath(input) {
|
|
150
|
+
return input.replaceAll("\\", "/");
|
|
151
|
+
}
|
|
152
|
+
function tokenize(input) {
|
|
153
|
+
return new Set(input
|
|
154
|
+
.toLowerCase()
|
|
155
|
+
.split(/[^a-z0-9]+/)
|
|
156
|
+
.map((token) => token.trim())
|
|
157
|
+
.filter((token) => token.length >= 3));
|
|
158
|
+
}
|
|
159
|
+
//# sourceMappingURL=builder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"builder.js","sourceRoot":"","sources":["../../src/context/builder.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
export type AgentKitContextBuildMode = "all" | "triggered";
|
|
2
|
+
export type AgentKitContextTarget = "openai" | "chatgpt" | "claude" | "generic";
|
|
3
|
+
export interface AgentKitContextRequest {
|
|
4
|
+
kitPath: string;
|
|
5
|
+
userTask?: string;
|
|
6
|
+
mode: AgentKitContextBuildMode;
|
|
7
|
+
target: AgentKitContextTarget;
|
|
8
|
+
includePolicies?: boolean;
|
|
9
|
+
includeTemplates?: boolean;
|
|
10
|
+
includeWorkflows?: boolean;
|
|
11
|
+
includeReferences?: boolean;
|
|
12
|
+
includePrompts?: boolean;
|
|
13
|
+
maxSkills?: number;
|
|
14
|
+
maxFiles?: number;
|
|
15
|
+
maxBytes?: number;
|
|
16
|
+
}
|
|
17
|
+
export interface AgentKitContextResult {
|
|
18
|
+
systemContext: string;
|
|
19
|
+
userContext: string;
|
|
20
|
+
includedFiles: string[];
|
|
21
|
+
includedSkills: string[];
|
|
22
|
+
warnings: string[];
|
|
23
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/context/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
export const knownDomains = [
|
|
2
|
+
{ id: "finance-accounting", label: "Finance / Accounting" },
|
|
3
|
+
{ id: "legal", label: "Legal" },
|
|
4
|
+
{ id: "healthcare-medical", label: "Healthcare / Medical" },
|
|
5
|
+
{ id: "devops-sre", label: "DevOps / SRE" },
|
|
6
|
+
{ id: "cloud-infrastructure", label: "Cloud / Infrastructure" },
|
|
7
|
+
{ id: "security", label: "Security" },
|
|
8
|
+
{ id: "software-engineering", label: "Software Engineering" },
|
|
9
|
+
{ id: "data-analytics", label: "Data / Analytics" },
|
|
10
|
+
{ id: "sales-marketing", label: "Sales / Marketing" },
|
|
11
|
+
{ id: "customer-support", label: "Customer Support" },
|
|
12
|
+
{ id: "research", label: "Research" },
|
|
13
|
+
{ id: "education", label: "Education" },
|
|
14
|
+
{ id: "operations", label: "Operations" },
|
|
15
|
+
{ id: "general-business", label: "General Business" },
|
|
16
|
+
{ id: "personal-productivity", label: "Personal Productivity" },
|
|
17
|
+
{ id: "real-estate", label: "Real Estate" },
|
|
18
|
+
{ id: "hr-recruiting", label: "HR / Recruiting" },
|
|
19
|
+
{ id: "procurement", label: "Procurement" },
|
|
20
|
+
{ id: "compliance", label: "Compliance" },
|
|
21
|
+
{ id: "product-management", label: "Product Management" },
|
|
22
|
+
{ id: "project-management", label: "Project Management" },
|
|
23
|
+
{ id: "writing-editing", label: "Writing / Editing" },
|
|
24
|
+
{ id: "design-creative", label: "Design / Creative" },
|
|
25
|
+
{ id: "insurance", label: "Insurance" },
|
|
26
|
+
{ id: "government-public-policy", label: "Government / Public Policy" },
|
|
27
|
+
{ id: "construction-trades", label: "Construction / Trades" },
|
|
28
|
+
{ id: "logistics-supply-chain", label: "Logistics / Supply Chain" },
|
|
29
|
+
{ id: "manufacturing", label: "Manufacturing" },
|
|
30
|
+
{ id: "retail-ecommerce", label: "Retail / E-commerce" },
|
|
31
|
+
{ id: "nonprofit", label: "Nonprofit" },
|
|
32
|
+
{ id: "other-custom", label: "Other / Custom" }
|
|
33
|
+
];
|
|
34
|
+
export function getKnownDomains() {
|
|
35
|
+
return [...knownDomains];
|
|
36
|
+
}
|
|
37
|
+
export function findMatchingDomains(query) {
|
|
38
|
+
const normalized = query.trim().toLowerCase();
|
|
39
|
+
if (!normalized) {
|
|
40
|
+
return [];
|
|
41
|
+
}
|
|
42
|
+
return knownDomains.filter((domain) => domain.id.includes(normalized.replaceAll(" ", "-")) ||
|
|
43
|
+
domain.label.toLowerCase().includes(normalized));
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=catalog.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"catalog.js","sourceRoot":"","sources":["../../src/domains/catalog.ts"],"names":[],"mappings":"AAKA,MAAM,CAAC,MAAM,YAAY,GAAkB;IACzC,EAAE,EAAE,EAAE,oBAAoB,EAAE,KAAK,EAAE,sBAAsB,EAAE;IAC3D,EAAE,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE;IAC/B,EAAE,EAAE,EAAE,oBAAoB,EAAE,KAAK,EAAE,sBAAsB,EAAE;IAC3D,EAAE,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,cAAc,EAAE;IAC3C,EAAE,EAAE,EAAE,sBAAsB,EAAE,KAAK,EAAE,wBAAwB,EAAE;IAC/D,EAAE,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE;IACrC,EAAE,EAAE,EAAE,sBAAsB,EAAE,KAAK,EAAE,sBAAsB,EAAE;IAC7D,EAAE,EAAE,EAAE,gBAAgB,EAAE,KAAK,EAAE,kBAAkB,EAAE;IACnD,EAAE,EAAE,EAAE,iBAAiB,EAAE,KAAK,EAAE,mBAAmB,EAAE;IACrD,EAAE,EAAE,EAAE,kBAAkB,EAAE,KAAK,EAAE,kBAAkB,EAAE;IACrD,EAAE,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE;IACrC,EAAE,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,EAAE;IACvC,EAAE,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY,EAAE;IACzC,EAAE,EAAE,EAAE,kBAAkB,EAAE,KAAK,EAAE,kBAAkB,EAAE;IACrD,EAAE,EAAE,EAAE,uBAAuB,EAAE,KAAK,EAAE,uBAAuB,EAAE;IAC/D,EAAE,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE,aAAa,EAAE;IAC3C,EAAE,EAAE,EAAE,eAAe,EAAE,KAAK,EAAE,iBAAiB,EAAE;IACjD,EAAE,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE,aAAa,EAAE;IAC3C,EAAE,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY,EAAE;IACzC,EAAE,EAAE,EAAE,oBAAoB,EAAE,KAAK,EAAE,oBAAoB,EAAE;IACzD,EAAE,EAAE,EAAE,oBAAoB,EAAE,KAAK,EAAE,oBAAoB,EAAE;IACzD,EAAE,EAAE,EAAE,iBAAiB,EAAE,KAAK,EAAE,mBAAmB,EAAE;IACrD,EAAE,EAAE,EAAE,iBAAiB,EAAE,KAAK,EAAE,mBAAmB,EAAE;IACrD,EAAE,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,EAAE;IACvC,EAAE,EAAE,EAAE,0BAA0B,EAAE,KAAK,EAAE,4BAA4B,EAAE;IACvE,EAAE,EAAE,EAAE,qBAAqB,EAAE,KAAK,EAAE,uBAAuB,EAAE;IAC7D,EAAE,EAAE,EAAE,wBAAwB,EAAE,KAAK,EAAE,0BAA0B,EAAE;IACnE,EAAE,EAAE,EAAE,eAAe,EAAE,KAAK,EAAE,eAAe,EAAE;IAC/C,EAAE,EAAE,EAAE,kBAAkB,EAAE,KAAK,EAAE,qBAAqB,EAAE;IACxD,EAAE,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,EAAE;IACvC,EAAE,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,gBAAgB,EAAE;CAChD,CAAC;AAEF,MAAM,UAAU,eAAe;IAC7B,OAAO,CAAC,GAAG,YAAY,CAAC,CAAC;AAC3B,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,KAAa;IAC/C,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC9C,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,OAAO,YAAY,CAAC,MAAM,CACxB,CAAC,MAAM,EAAE,EAAE,CACT,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QACnD,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,CAClD,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { ZodError } from "zod";
|
|
2
|
+
export interface RenderAgentKitDraftOptions {
|
|
3
|
+
force?: boolean;
|
|
4
|
+
}
|
|
5
|
+
export interface RenderAgentKitDraftResult {
|
|
6
|
+
rootPath: string;
|
|
7
|
+
files: string[];
|
|
8
|
+
}
|
|
9
|
+
export declare class AgentKitDraftValidationError extends Error {
|
|
10
|
+
readonly issues: string[];
|
|
11
|
+
constructor(error: ZodError);
|
|
12
|
+
}
|
|
13
|
+
export declare function renderAgentKitDraft(draftInput: unknown, targetDir: string, options?: RenderAgentKitDraftOptions): Promise<RenderAgentKitDraftResult>;
|