@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.
Files changed (107) hide show
  1. package/CHANGELOG.md +35 -0
  2. package/CLI.md +177 -0
  3. package/LICENSE +69 -0
  4. package/README.md +326 -0
  5. package/SECURITY.md +33 -0
  6. package/SPEC.md +159 -0
  7. package/VERSIONING.md +45 -0
  8. package/dist/adapters/claudeCode.d.ts +11 -0
  9. package/dist/adapters/claudeCode.js +120 -0
  10. package/dist/adapters/claudeCode.js.map +1 -0
  11. package/dist/adapters/codex.d.ts +12 -0
  12. package/dist/adapters/codex.js +141 -0
  13. package/dist/adapters/codex.js.map +1 -0
  14. package/dist/app/exampleInputDocuments.d.ts +21 -0
  15. package/dist/app/exampleInputDocuments.js +24 -0
  16. package/dist/app/exampleInputDocuments.js.map +1 -0
  17. package/dist/app/inspect.d.ts +15 -0
  18. package/dist/app/inspect.js +96 -0
  19. package/dist/app/inspect.js.map +1 -0
  20. package/dist/app/loadAsDraft.d.ts +7 -0
  21. package/dist/app/loadAsDraft.js +148 -0
  22. package/dist/app/loadAsDraft.js.map +1 -0
  23. package/dist/app/summary.d.ts +17 -0
  24. package/dist/app/summary.js +89 -0
  25. package/dist/app/summary.js.map +1 -0
  26. package/dist/artifacts/naming.d.ts +8 -0
  27. package/dist/artifacts/naming.js +26 -0
  28. package/dist/artifacts/naming.js.map +1 -0
  29. package/dist/builder/draftRequest.d.ts +24 -0
  30. package/dist/builder/draftRequest.js +87 -0
  31. package/dist/builder/draftRequest.js.map +1 -0
  32. package/dist/builder/instructions.d.ts +1 -0
  33. package/dist/builder/instructions.js +30 -0
  34. package/dist/builder/instructions.js.map +1 -0
  35. package/dist/builder/revisionRequest.d.ts +24 -0
  36. package/dist/builder/revisionRequest.js +94 -0
  37. package/dist/builder/revisionRequest.js.map +1 -0
  38. package/dist/cli/index.d.ts +2 -0
  39. package/dist/cli/index.js +5 -0
  40. package/dist/cli/index.js.map +1 -0
  41. package/dist/cli/program.d.ts +2 -0
  42. package/dist/cli/program.js +273 -0
  43. package/dist/cli/program.js.map +1 -0
  44. package/dist/context/builder.d.ts +2 -0
  45. package/dist/context/builder.js +159 -0
  46. package/dist/context/builder.js.map +1 -0
  47. package/dist/context/types.d.ts +23 -0
  48. package/dist/context/types.js +2 -0
  49. package/dist/context/types.js.map +1 -0
  50. package/dist/domains/catalog.d.ts +7 -0
  51. package/dist/domains/catalog.js +45 -0
  52. package/dist/domains/catalog.js.map +1 -0
  53. package/dist/draft/render.d.ts +13 -0
  54. package/dist/draft/render.js +207 -0
  55. package/dist/draft/render.js.map +1 -0
  56. package/dist/draft/schema.d.ts +107 -0
  57. package/dist/draft/schema.js +78 -0
  58. package/dist/draft/schema.js.map +1 -0
  59. package/dist/draft/session.d.ts +56 -0
  60. package/dist/draft/session.js +115 -0
  61. package/dist/draft/session.js.map +1 -0
  62. package/dist/export/onefile.d.ts +1 -0
  63. package/dist/export/onefile.js +109 -0
  64. package/dist/export/onefile.js.map +1 -0
  65. package/dist/fs/safety.d.ts +26 -0
  66. package/dist/fs/safety.js +187 -0
  67. package/dist/fs/safety.js.map +1 -0
  68. package/dist/index.d.ts +45 -0
  69. package/dist/index.js +26 -0
  70. package/dist/index.js.map +1 -0
  71. package/dist/init/create.d.ts +14 -0
  72. package/dist/init/create.js +48 -0
  73. package/dist/init/create.js.map +1 -0
  74. package/dist/init/templates.d.ts +12 -0
  75. package/dist/init/templates.js +202 -0
  76. package/dist/init/templates.js.map +1 -0
  77. package/dist/package/packager.d.ts +5 -0
  78. package/dist/package/packager.js +30 -0
  79. package/dist/package/packager.js.map +1 -0
  80. package/dist/package/reader.d.ts +3 -0
  81. package/dist/package/reader.js +21 -0
  82. package/dist/package/reader.js.map +1 -0
  83. package/dist/prompts/prompts.d.ts +35 -0
  84. package/dist/prompts/prompts.js +206 -0
  85. package/dist/prompts/prompts.js.map +1 -0
  86. package/dist/prompts/schema.d.ts +71 -0
  87. package/dist/prompts/schema.js +46 -0
  88. package/dist/prompts/schema.js.map +1 -0
  89. package/dist/providers/catalog.d.ts +15 -0
  90. package/dist/providers/catalog.js +211 -0
  91. package/dist/providers/catalog.js.map +1 -0
  92. package/dist/providers/types.d.ts +30 -0
  93. package/dist/providers/types.js +2 -0
  94. package/dist/providers/types.js.map +1 -0
  95. package/dist/schema/agentkit.d.ts +54 -0
  96. package/dist/schema/agentkit.js +63 -0
  97. package/dist/schema/agentkit.js.map +1 -0
  98. package/dist/types.d.ts +69 -0
  99. package/dist/types.js +2 -0
  100. package/dist/types.js.map +1 -0
  101. package/dist/validation/skill.d.ts +3 -0
  102. package/dist/validation/skill.js +83 -0
  103. package/dist/validation/skill.js.map +1 -0
  104. package/dist/validation/validator.d.ts +2 -0
  105. package/dist/validation/validator.js +247 -0
  106. package/dist/validation/validator.js.map +1 -0
  107. 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,2 @@
1
+ import { Command } from "commander";
2
+ export declare function createCliProgram(): Command;
@@ -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,2 @@
1
+ import type { AgentKitContextRequest, AgentKitContextResult } from "./types.js";
2
+ export declare function buildAgentKitContext(request: AgentKitContextRequest): Promise<AgentKitContextResult>;
@@ -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,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/context/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,7 @@
1
+ export interface KnownDomain {
2
+ id: string;
3
+ label: string;
4
+ }
5
+ export declare const knownDomains: KnownDomain[];
6
+ export declare function getKnownDomains(): KnownDomain[];
7
+ export declare function findMatchingDomains(query: string): KnownDomain[];
@@ -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":"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"}
@@ -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>;