@agentkitforge/core 0.1.0 → 0.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.
package/CHANGELOG.md CHANGED
@@ -1,35 +1,49 @@
1
- # Changelog
2
-
3
- All notable changes to AgentKitForge Core will be documented in this file.
4
-
5
- This project follows Semantic Versioning. Before `0.0.0`, minor versions may include breaking changes.
6
-
7
- ## Unreleased
8
-
9
- - Added open-source governance, security, contribution, versioning, release, spec, and CLI documentation.
10
-
11
- ## 1.0.0 (2026-05-29)
12
-
13
-
14
- ### Features
15
-
16
- * prepare initial public preview ([61e8d7d](https://github.com/AgentKitProject/agentkitforge-core/commit/61e8d7d9c9a1efac31c6dc62b4ed9c42d97bf729))
17
-
18
-
19
- ### Bug Fixes
20
-
21
- * set initial release baseline ([29fc113](https://github.com/AgentKitProject/agentkitforge-core/commit/29fc11376ce64175dfb9564b5fa625dc24eb63d2))
22
-
23
- ## v0.1.0 Public Preview
24
-
25
- - Initial public preview target.
26
- - Core Agent Kit manifest validation.
27
- - Validation profiles: `local-valid`, `publishable`, `trusted`, and `verified`.
28
- - Agent Kit scaffolding templates.
29
- - Draft rendering and draft request helpers.
30
- - Prepared Prompt schema, validation, and rendering.
31
- - Context Builder.
32
- - One-file Markdown export.
33
- - `.agentkit.zip` packaging.
34
- - Codex and Claude Code target exports.
35
- - CLI workflows for validation, packaging, export, prompt rendering, context building, and inspection.
1
+ # Changelog
2
+
3
+ All notable changes to AgentKitForge Core will be documented in this file.
4
+
5
+ This project follows Semantic Versioning. Before `1.0.0`, minor versions may include breaking changes.
6
+
7
+ ## Unreleased
8
+
9
+ - Added open-source governance, security, contribution, versioning, release, spec, and CLI documentation.
10
+
11
+ ## [0.2.0](https://github.com/AgentKitProject/agentkitforge-core/compare/v0.1.1...v0.2.0) (2026-05-31)
12
+
13
+
14
+ ### Features
15
+
16
+ * harden core cross-platform path handling ([a48650e](https://github.com/AgentKitProject/agentkitforge-core/commit/a48650ec907b954e7f07cab296e33fb9855bd508))
17
+
18
+ ## [0.1.1](https://github.com/AgentKitProject/agentkitforge-core/compare/v0.1.0...v0.1.1) (2026-05-29)
19
+
20
+
21
+ ### Bug Fixes
22
+
23
+ * make core installable from source package installs ([cd63497](https://github.com/AgentKitProject/agentkitforge-core/commit/cd63497006194ef05b626e64b65f8ea24862eee2))
24
+
25
+ ## 1.0.0 (2026-05-29)
26
+
27
+
28
+ ### Features
29
+
30
+ * prepare initial public preview ([61e8d7d](https://github.com/AgentKitProject/agentkitforge-core/commit/61e8d7d9c9a1efac31c6dc62b4ed9c42d97bf729))
31
+
32
+
33
+ ### Bug Fixes
34
+
35
+ * set initial release baseline ([29fc113](https://github.com/AgentKitProject/agentkitforge-core/commit/29fc11376ce64175dfb9564b5fa625dc24eb63d2))
36
+
37
+ ## v0.1.0 Public Preview
38
+
39
+ - Initial public preview target.
40
+ - Core Agent Kit manifest validation.
41
+ - Validation profiles: `local-valid`, `publishable`, `trusted`, and `verified`.
42
+ - Agent Kit scaffolding templates.
43
+ - Draft rendering and draft request helpers.
44
+ - Prepared Prompt schema, validation, and rendering.
45
+ - Context Builder.
46
+ - One-file Markdown export.
47
+ - `.agentkit.zip` packaging.
48
+ - Codex and Claude Code target exports.
49
+ - CLI workflows for validation, packaging, export, prompt rendering, context building, and inspection.
package/README.md CHANGED
@@ -1,7 +1,7 @@
1
- # AgentKitForge Core
2
-
3
- AgentKitForge Core is the initial TypeScript engine for validating, exporting, and packaging portable Agent Kits. This package intentionally contains only core package/spec/validation/export logic. It does not include a desktop app, AWS infrastructure, or Agent Kit Market integration.
4
-
1
+ # AgentKitForge Core
2
+
3
+ AgentKitForge Core is the initial TypeScript engine for validating, exporting, and packaging portable Agent Kits. This package intentionally contains only core package/spec/validation/export logic. It does not include a desktop app, AWS infrastructure, or Agent Kit Market integration.
4
+
5
5
  ## Install
6
6
 
7
7
  ```bash
@@ -22,305 +22,307 @@ The published package includes built `dist/` output. The repository does not com
22
22
  - `types`: `dist/index.d.ts`
23
23
  - `bin`: `dist/cli/index.js`
24
24
 
25
+ Release Please creates GitHub Releases, and the release workflow publishes `@agentkitforge/core` to npm automatically using npm Trusted Publishing.
26
+
25
27
  ## Build
26
28
 
27
29
  ```bash
28
30
  npm run build
29
31
  ```
30
-
31
- ## Test
32
-
33
- ```bash
34
- npm test
35
- ```
36
-
37
- ## Smoke Test
38
-
39
- ```bash
40
- npm run build
41
- npm run smoke
42
- ```
43
-
44
- The smoke test exercises the built CLI across init, validation, packaging, one-file export, prepared prompts, context building, target exports, inspection, summary, and load-as-draft workflows.
45
-
46
- ## Security Checks
47
-
48
- GitHub Actions runs security scanning on pushes, pull requests, and manual dispatch. Blocking checks currently include `npm audit --audit-level=critical`. A non-blocking high vulnerability audit is reported in logs.
49
-
50
- See [SECURITY_CI_POLICY.md](SECURITY_CI_POLICY.md) for the v0.1 failure policy.
51
-
52
- ## Project Documents
53
-
54
- - [SPEC.md](SPEC.md): Agent Kit public preview package specification.
55
- - [CLI.md](CLI.md): CLI command reference.
56
- - [CONTRIBUTING.md](CONTRIBUTING.md): Local setup, contribution scope, and PR expectations.
57
- - [SECURITY.md](SECURITY.md): Vulnerability reporting and supported versions.
58
- - [VERSIONING.md](VERSIONING.md): SemVer and schema compatibility policy.
59
- - [RELEASE_PROCESS.md](RELEASE_PROCESS.md): Release checklist and tagging flow.
60
- - [CHANGELOG.md](CHANGELOG.md): Release notes.
61
- - [CODE_OF_CONDUCT.md](CODE_OF_CONDUCT.md): Contributor conduct expectations.
62
-
63
- ## Agent Kit Input Safety
64
-
65
- Agent Kit folders are treated as untrusted input. Manifest-controlled paths must be safe relative paths that stay inside the kit root, and IDs used for package/export folder names must be path-safe kebab-case identifiers. Core reports validation errors for unsafe manifest paths or IDs instead of reading, copying, packaging, or exporting them.
66
-
67
- Core never executes files from `scripts/`; it only validates whether script files are declared. Packaging, context building, and target exports reject symbolic links, skip generated or dependency-heavy folders such as `exports/`, `.git`, `node_modules`, `dist`, and `build`, and apply conservative file-count and byte limits to avoid unexpectedly large or malicious kits.
68
-
69
- ## CLI
70
-
71
- Create a blank Agent Kit:
72
-
73
- ```bash
74
- npm run build
75
- node dist/cli/index.js init ./my-agentkit \
76
- --template blank \
77
- --id my-agentkit \
78
- --name "My Agent Kit" \
79
- --description "A starter Agent Kit."
80
- ```
81
-
82
- Create a trusted financial review starter kit:
83
-
84
- ```bash
85
- node dist/cli/index.js init ./financial-review-kit \
86
- --template financial-review \
87
- --id financial-review-kit \
88
- --name "Financial Review Kit" \
89
- --description "Review financial workbooks for structure, formulas, and follow-up risks."
90
- ```
91
-
92
- Use `--force` to initialize into a non-empty directory and overwrite generated template files.
93
-
94
- Render an Agent Kit draft JSON file:
95
-
96
- ```bash
97
- node dist/cli/index.js render-draft ./draft.json ./rendered-agentkit --force
98
- ```
99
-
100
- Draft rendering validates the JSON structure before writing files. Rendered kits include the standard manifest, entrypoint Markdown files, README, LICENSE, CHANGELOG, skills, and any draft policies, examples, or templates.
101
-
102
- List prepared prompts in a kit:
103
-
104
- ```bash
105
- node dist/cli/index.js list-prompts ./path/to/agentkit
106
- ```
107
-
108
- Render a prepared prompt with input values:
109
-
110
- ```bash
111
- node dist/cli/index.js render-prompt ./path/to/agentkit financial-review --inputs inputs.json --out rendered-prompt.md
112
- ```
113
-
114
- Validate prepared prompt inputs:
115
-
116
- ```bash
117
- node dist/cli/index.js validate-prompt-inputs ./path/to/agentkit financial-review --inputs inputs.json
118
- ```
119
-
120
- Inspect, summarize, or load an existing kit as a draft:
121
-
122
- ```bash
123
- node dist/cli/index.js inspect ./path/to/repo-or-kit
124
- node dist/cli/index.js summarize ./path/to/agentkit
125
- node dist/cli/index.js load-as-draft ./path/to/agentkit --out draft.json
126
- ```
127
-
128
- Prepare a provider-neutral AI draft request:
129
-
130
- ```bash
131
- node dist/cli/index.js draft-request \
132
- --request "Build a financial review kit for monthly workbook review." \
133
- --level trusted \
134
- --domain Finance \
135
- --target-user analyst \
136
- --out draft-request.json
137
- ```
138
-
139
- The command writes deterministic instructions, prompt text, and the expected `AgentKitDraft` JSON schema. It does not call OpenAI or any other provider. A future app can send `draft-request.json` to an AI provider, validate the returned `AgentKitDraft` JSON, then render it:
140
-
141
- ```bash
142
- node dist/cli/index.js render-draft draft.json ./my-kit --force
143
- ```
144
-
145
- Prepare a revision request for an existing draft:
146
-
147
- ```bash
148
- node dist/cli/index.js draft-revision-request ./draft.json \
149
- --change "Add a reusable prepared prompt for monthly workbook review." \
150
- --level trusted \
151
- --out draft-revision-request.json
152
- ```
153
-
154
- Build with AI is designed as an iterative flow:
155
-
156
- 1. Create a draft request from the user's initial request.
157
- 2. A future app sends that request to an AI provider.
158
- 3. Validate the returned `AgentKitDraft`.
159
- 4. Create an AI Draft Session and store revision v1.
160
- 5. For user changes, create a draft revision request from the current draft.
161
- 6. Validate the returned full updated draft and add a new revision.
162
- 7. Render the current revision into an Agent Kit folder.
163
-
164
- Core only builds request/session data. The app performs provider calls.
165
-
166
- Validate an Agent Kit:
167
-
168
- ```bash
169
- node dist/cli/index.js validate ./path/to/agentkit --profile local-valid
170
- ```
171
-
172
- Supported validation profiles:
173
-
174
- - `local-valid`
175
- - `publishable`
176
- - `trusted`
177
- - `verified`
178
-
179
- Export a one-file Markdown bundle:
180
-
181
- ```bash
182
- node dist/cli/index.js export-onefile ./path/to/agentkit --out ./bundle.md
183
- ```
184
-
185
- Create a `.agentkit.zip` package:
186
-
187
- ```bash
188
- node dist/cli/index.js package ./path/to/agentkit --out ./agentkit.agentkit.zip
189
- ```
190
-
191
- Build AI-ready context from an Agent Kit:
192
-
193
- ```bash
194
- node dist/cli/index.js build-context ./path/to/agentkit \
195
- --task "Audit formulas in this workbook." \
196
- --mode triggered \
197
- --target generic \
198
- --out context.json
199
- ```
200
-
201
- The context builder does not call OpenAI or any other provider. It creates a JSON payload with:
202
-
203
- - `systemContext`: Agent Kit instructions, selected skills, and requested supporting files.
204
- - `userContext`: the user task, ready to pair with the system context.
205
- - `includedFiles`: normalized package paths included in the context.
206
- - `includedSkills`: skill ids included in the context.
207
- - `warnings`: deterministic fallback or selection warnings.
208
-
209
- Use `--mode all` to include every manifest skill. Use `--mode triggered` to match the user task against skill triggers and descriptions. If no skill matches, the builder includes all skills and records a warning.
210
-
211
- Policies, templates, and workflows are included by default in the CLI. Use `--no-policies`, `--no-templates`, or `--no-workflows` to exclude them. References are excluded by default; pass `--include-references` when the target workflow needs them.
212
-
213
- Export Agent Kit skills to a Codex-compatible skills directory:
214
-
215
- ```bash
216
- node dist/cli/index.js export-codex ./financial-review --dest ~/.codex/skills --force
217
- ```
218
-
219
- This is the first target adapter. It copies each manifest skill into a namespaced Codex skill folder like `<kit-id>-<skill-id>`, creates an index skill for the kit, and writes AgentKitForge markers so `--force` only replaces folders generated by this adapter. It does not call Codex and does not assume your actual Codex skills path.
220
-
221
- Export an Agent Kit to an initial Claude Code plugin-style folder:
222
-
223
- ```bash
224
- node dist/cli/index.js export-claude-code ./financial-review --dest ./claude-code-plugins --force
225
- ```
226
-
227
- This adapter creates `<kit-id>-claude-code-plugin/`, writes `.claude-plugin/plugin.json`, copies manifest skills into `skills/<skill-id>/`, and includes root Agent Kit instructions plus supporting `policies/`, `templates/`, `workflows/`, and `references/` when present. The plugin manifest is intentionally conservative because Claude Code plugin loading behavior may evolve; verify loading with your Claude Code version.
228
-
229
- After this package is installed globally or linked, the same commands are available through `agentkitforge`.
230
-
231
- ## AI Provider Metadata
232
-
233
- AgentKitForge Core defines shared provider and model metadata only. It does not call OpenAI, Anthropic, Gemini, Ollama, OpenAI-compatible servers, or any other provider. It does not store API keys.
234
-
235
- The exported provider helpers cover:
236
-
237
- - provider types: `openai`, `anthropic`, `gemini`, `ollama`, `openai-compatible`
238
- - starter known-model suggestions
239
- - default model suggestions
240
- - API key and base URL requirements
241
- - structured JSON capability hints for AgentKitDraft generation
242
-
243
- Known models are suggestions, not constraints. Apps and CLIs that consume this package must always allow custom model IDs, especially for Ollama and OpenAI-compatible providers.
244
-
245
- ## Prepared Prompts
246
-
247
- Prepared Prompts are reusable prompt templates stored under `prompts/<prompt-id>.yaml`. They let a kit define exact prompts that can be rendered later in Use mode after an app collects required inputs.
248
-
249
- Canonical variable syntax is `{{variable_name}}`. A simpler `{variable_name}` form is tolerated for compatibility. Whitespace is allowed inside braces, such as `{{ company_name }}`. Inputs are defined by the prepared prompt, and AgentKitForge validates/rendered prompts so unresolved variables are blocked before an app sends the prompt to an AI provider.
250
-
251
- Prompt input types:
252
-
253
- - `short-text`
254
- - `long-text`
255
- - `choice`
256
- - `multi-choice`
257
- - `date`
258
- - `number`
259
- - `boolean`
260
-
261
- Prepared prompt paths can be referenced from `agentkit.yaml`:
262
-
263
- ```yaml
264
- prompts:
265
- - id: financial-review
266
- path: prompts/financial-review.yaml
267
- description: Review a financial workbook and produce a summary.
268
- ```
269
-
270
- One-file export renders prepared prompts in a readable Markdown section instead of dumping raw YAML.
271
-
272
- Default artifact naming helpers return predictable names such as:
273
-
274
- - `<kit-id>-<version>.onefile.md`
275
- - `<kit-id>-<version>.agentkit.zip`
276
- - `<kit-id>-output-<timestamp>.md`
277
-
278
- ## Domains
279
-
280
- Core includes a known domain catalog for guided builders and filtering. Domains are suggestions, not constraints. Consumers should always allow custom domains.
281
-
282
- ## App-Support Helpers
283
-
284
- Core includes reusable helpers for app workflows:
285
-
286
- - `inspectAgentKitCandidate(path)` for import-friendly diagnostics.
287
- - `getAgentKitSummary(path)` for details, export, and install target screens.
288
- - `loadAgentKitAsDraft(path)` for Edit with AI and guided editing.
289
- - `requestedSections` and `excludedSections` on draft request builders for AI section control.
290
- - Example input document metadata helpers for `.txt`, `.md`, `.csv`, `.xlsx`, and `.xls`.
291
- - Artifact naming helpers for one-file exports, packages, and generated outputs.
292
-
293
- Example input documents are app-provided metadata. Core does not upload files, call AI providers, or perform heavy spreadsheet parsing. Apps can use them to help AI infer formatting, terminology, expected outputs, required inputs, skill procedures, and prepared prompt variables.
294
-
295
- ## Agent Kit Structure
296
-
297
- ```text
298
- agentkit.yaml
299
- AGENTKIT.md
300
- START_HERE.md
301
- README.md
302
- LICENSE
303
- CHANGELOG.md
304
- skills/<skill-id>/SKILL.md
305
- prompts/<prompt-id>.yaml
306
- workflows/
307
- policies/
308
- references/
309
- templates/
310
- examples/
311
- evals/
312
- adapters/
313
- scripts/
314
- assets/
315
- exports/
316
- ```
317
-
318
- ## Validation Profiles
319
-
320
- `local-valid` requires `agentkit.yaml`, `AGENTKIT.md`, `START_HERE.md`, `skills/`, and at least one `skills/<skill-id>/SKILL.md`.
321
-
322
- `publishable` adds `README.md` and `LICENSE`.
323
-
324
- `trusted` adds `CHANGELOG.md`, `policies/`, and `examples/`.
325
-
326
- `verified` adds `evals/`.
32
+
33
+ ## Test
34
+
35
+ ```bash
36
+ npm test
37
+ ```
38
+
39
+ ## Smoke Test
40
+
41
+ ```bash
42
+ npm run build
43
+ npm run smoke
44
+ ```
45
+
46
+ The smoke test exercises the built CLI across init, validation, packaging, one-file export, prepared prompts, context building, target exports, inspection, summary, and load-as-draft workflows.
47
+
48
+ ## Security Checks
49
+
50
+ GitHub Actions runs security scanning on pushes, pull requests, and manual dispatch. Blocking checks currently include `npm audit --audit-level=critical`. A non-blocking high vulnerability audit is reported in logs.
51
+
52
+ See [SECURITY_CI_POLICY.md](SECURITY_CI_POLICY.md) for the v0.1 failure policy.
53
+
54
+ ## Project Documents
55
+
56
+ - [SPEC.md](SPEC.md): Agent Kit public preview package specification.
57
+ - [CLI.md](CLI.md): CLI command reference.
58
+ - [CONTRIBUTING.md](CONTRIBUTING.md): Local setup, contribution scope, and PR expectations.
59
+ - [SECURITY.md](SECURITY.md): Vulnerability reporting and supported versions.
60
+ - [VERSIONING.md](VERSIONING.md): SemVer and schema compatibility policy.
61
+ - [RELEASE_PROCESS.md](RELEASE_PROCESS.md): Release checklist and tagging flow.
62
+ - [CHANGELOG.md](CHANGELOG.md): Release notes.
63
+ - [CODE_OF_CONDUCT.md](CODE_OF_CONDUCT.md): Contributor conduct expectations.
64
+
65
+ ## Agent Kit Input Safety
66
+
67
+ Agent Kit folders are treated as untrusted input. Manifest-controlled paths must be safe relative paths that stay inside the kit root, and IDs used for package/export folder names must be path-safe kebab-case identifiers. Core reports validation errors for unsafe manifest paths or IDs instead of reading, copying, packaging, or exporting them.
68
+
69
+ Core never executes files from `scripts/`; it only validates whether script files are declared. Packaging, context building, and target exports reject symbolic links, skip generated or dependency-heavy folders such as `exports/`, `.git`, `node_modules`, `dist`, and `build`, and apply conservative file-count and byte limits to avoid unexpectedly large or malicious kits.
70
+
71
+ ## CLI
72
+
73
+ Create a blank Agent Kit:
74
+
75
+ ```bash
76
+ npm run build
77
+ node dist/cli/index.js init ./my-agentkit \
78
+ --template blank \
79
+ --id my-agentkit \
80
+ --name "My Agent Kit" \
81
+ --description "A starter Agent Kit."
82
+ ```
83
+
84
+ Create a trusted financial review starter kit:
85
+
86
+ ```bash
87
+ node dist/cli/index.js init ./financial-review-kit \
88
+ --template financial-review \
89
+ --id financial-review-kit \
90
+ --name "Financial Review Kit" \
91
+ --description "Review financial workbooks for structure, formulas, and follow-up risks."
92
+ ```
93
+
94
+ Use `--force` to initialize into a non-empty directory and overwrite generated template files.
95
+
96
+ Render an Agent Kit draft JSON file:
97
+
98
+ ```bash
99
+ node dist/cli/index.js render-draft ./draft.json ./rendered-agentkit --force
100
+ ```
101
+
102
+ Draft rendering validates the JSON structure before writing files. Rendered kits include the standard manifest, entrypoint Markdown files, README, LICENSE, CHANGELOG, skills, and any draft policies, examples, or templates.
103
+
104
+ List prepared prompts in a kit:
105
+
106
+ ```bash
107
+ node dist/cli/index.js list-prompts ./path/to/agentkit
108
+ ```
109
+
110
+ Render a prepared prompt with input values:
111
+
112
+ ```bash
113
+ node dist/cli/index.js render-prompt ./path/to/agentkit financial-review --inputs inputs.json --out rendered-prompt.md
114
+ ```
115
+
116
+ Validate prepared prompt inputs:
117
+
118
+ ```bash
119
+ node dist/cli/index.js validate-prompt-inputs ./path/to/agentkit financial-review --inputs inputs.json
120
+ ```
121
+
122
+ Inspect, summarize, or load an existing kit as a draft:
123
+
124
+ ```bash
125
+ node dist/cli/index.js inspect ./path/to/repo-or-kit
126
+ node dist/cli/index.js summarize ./path/to/agentkit
127
+ node dist/cli/index.js load-as-draft ./path/to/agentkit --out draft.json
128
+ ```
129
+
130
+ Prepare a provider-neutral AI draft request:
131
+
132
+ ```bash
133
+ node dist/cli/index.js draft-request \
134
+ --request "Build a financial review kit for monthly workbook review." \
135
+ --level trusted \
136
+ --domain Finance \
137
+ --target-user analyst \
138
+ --out draft-request.json
139
+ ```
140
+
141
+ The command writes deterministic instructions, prompt text, and the expected `AgentKitDraft` JSON schema. It does not call OpenAI or any other provider. A future app can send `draft-request.json` to an AI provider, validate the returned `AgentKitDraft` JSON, then render it:
142
+
143
+ ```bash
144
+ node dist/cli/index.js render-draft draft.json ./my-kit --force
145
+ ```
146
+
147
+ Prepare a revision request for an existing draft:
148
+
149
+ ```bash
150
+ node dist/cli/index.js draft-revision-request ./draft.json \
151
+ --change "Add a reusable prepared prompt for monthly workbook review." \
152
+ --level trusted \
153
+ --out draft-revision-request.json
154
+ ```
155
+
156
+ Build with AI is designed as an iterative flow:
157
+
158
+ 1. Create a draft request from the user's initial request.
159
+ 2. A future app sends that request to an AI provider.
160
+ 3. Validate the returned `AgentKitDraft`.
161
+ 4. Create an AI Draft Session and store revision v1.
162
+ 5. For user changes, create a draft revision request from the current draft.
163
+ 6. Validate the returned full updated draft and add a new revision.
164
+ 7. Render the current revision into an Agent Kit folder.
165
+
166
+ Core only builds request/session data. The app performs provider calls.
167
+
168
+ Validate an Agent Kit:
169
+
170
+ ```bash
171
+ node dist/cli/index.js validate ./path/to/agentkit --profile local-valid
172
+ ```
173
+
174
+ Supported validation profiles:
175
+
176
+ - `local-valid`
177
+ - `publishable`
178
+ - `trusted`
179
+ - `verified`
180
+
181
+ Export a one-file Markdown bundle:
182
+
183
+ ```bash
184
+ node dist/cli/index.js export-onefile ./path/to/agentkit --out ./bundle.md
185
+ ```
186
+
187
+ Create a `.agentkit.zip` package:
188
+
189
+ ```bash
190
+ node dist/cli/index.js package ./path/to/agentkit --out ./agentkit.agentkit.zip
191
+ ```
192
+
193
+ Build AI-ready context from an Agent Kit:
194
+
195
+ ```bash
196
+ node dist/cli/index.js build-context ./path/to/agentkit \
197
+ --task "Audit formulas in this workbook." \
198
+ --mode triggered \
199
+ --target generic \
200
+ --out context.json
201
+ ```
202
+
203
+ The context builder does not call OpenAI or any other provider. It creates a JSON payload with:
204
+
205
+ - `systemContext`: Agent Kit instructions, selected skills, and requested supporting files.
206
+ - `userContext`: the user task, ready to pair with the system context.
207
+ - `includedFiles`: normalized package paths included in the context.
208
+ - `includedSkills`: skill ids included in the context.
209
+ - `warnings`: deterministic fallback or selection warnings.
210
+
211
+ Use `--mode all` to include every manifest skill. Use `--mode triggered` to match the user task against skill triggers and descriptions. If no skill matches, the builder includes all skills and records a warning.
212
+
213
+ Policies, templates, and workflows are included by default in the CLI. Use `--no-policies`, `--no-templates`, or `--no-workflows` to exclude them. References are excluded by default; pass `--include-references` when the target workflow needs them.
214
+
215
+ Export Agent Kit skills to a Codex-compatible skills directory:
216
+
217
+ ```bash
218
+ node dist/cli/index.js export-codex ./financial-review --dest ~/.codex/skills --force
219
+ ```
220
+
221
+ This is the first target adapter. It copies each manifest skill into a namespaced Codex skill folder like `<kit-id>-<skill-id>`, creates an index skill for the kit, and writes AgentKitForge markers so `--force` only replaces folders generated by this adapter. It does not call Codex and does not assume your actual Codex skills path.
222
+
223
+ Export an Agent Kit to an initial Claude Code plugin-style folder:
224
+
225
+ ```bash
226
+ node dist/cli/index.js export-claude-code ./financial-review --dest ./claude-code-plugins --force
227
+ ```
228
+
229
+ This adapter creates `<kit-id>-claude-code-plugin/`, writes `.claude-plugin/plugin.json`, copies manifest skills into `skills/<skill-id>/`, and includes root Agent Kit instructions plus supporting `policies/`, `templates/`, `workflows/`, and `references/` when present. The plugin manifest is intentionally conservative because Claude Code plugin loading behavior may evolve; verify loading with your Claude Code version.
230
+
231
+ After this package is installed globally or linked, the same commands are available through `agentkitforge`.
232
+
233
+ ## AI Provider Metadata
234
+
235
+ AgentKitForge Core defines shared provider and model metadata only. It does not call OpenAI, Anthropic, Gemini, Ollama, OpenAI-compatible servers, or any other provider. It does not store API keys.
236
+
237
+ The exported provider helpers cover:
238
+
239
+ - provider types: `openai`, `anthropic`, `gemini`, `ollama`, `openai-compatible`
240
+ - starter known-model suggestions
241
+ - default model suggestions
242
+ - API key and base URL requirements
243
+ - structured JSON capability hints for AgentKitDraft generation
244
+
245
+ Known models are suggestions, not constraints. Apps and CLIs that consume this package must always allow custom model IDs, especially for Ollama and OpenAI-compatible providers.
246
+
247
+ ## Prepared Prompts
248
+
249
+ Prepared Prompts are reusable prompt templates stored under `prompts/<prompt-id>.yaml`. They let a kit define exact prompts that can be rendered later in Use mode after an app collects required inputs.
250
+
251
+ Canonical variable syntax is `{{variable_name}}`. A simpler `{variable_name}` form is tolerated for compatibility. Whitespace is allowed inside braces, such as `{{ company_name }}`. Inputs are defined by the prepared prompt, and AgentKitForge validates/rendered prompts so unresolved variables are blocked before an app sends the prompt to an AI provider.
252
+
253
+ Prompt input types:
254
+
255
+ - `short-text`
256
+ - `long-text`
257
+ - `choice`
258
+ - `multi-choice`
259
+ - `date`
260
+ - `number`
261
+ - `boolean`
262
+
263
+ Prepared prompt paths can be referenced from `agentkit.yaml`:
264
+
265
+ ```yaml
266
+ prompts:
267
+ - id: financial-review
268
+ path: prompts/financial-review.yaml
269
+ description: Review a financial workbook and produce a summary.
270
+ ```
271
+
272
+ One-file export renders prepared prompts in a readable Markdown section instead of dumping raw YAML.
273
+
274
+ Default artifact naming helpers return predictable names such as:
275
+
276
+ - `<kit-id>-<version>.onefile.md`
277
+ - `<kit-id>-<version>.agentkit.zip`
278
+ - `<kit-id>-output-<timestamp>.md`
279
+
280
+ ## Domains
281
+
282
+ Core includes a known domain catalog for guided builders and filtering. Domains are suggestions, not constraints. Consumers should always allow custom domains.
283
+
284
+ ## App-Support Helpers
285
+
286
+ Core includes reusable helpers for app workflows:
287
+
288
+ - `inspectAgentKitCandidate(path)` for import-friendly diagnostics.
289
+ - `getAgentKitSummary(path)` for details, export, and install target screens.
290
+ - `loadAgentKitAsDraft(path)` for Edit with AI and guided editing.
291
+ - `requestedSections` and `excludedSections` on draft request builders for AI section control.
292
+ - Example input document metadata helpers for `.txt`, `.md`, `.csv`, `.xlsx`, and `.xls`.
293
+ - Artifact naming helpers for one-file exports, packages, and generated outputs.
294
+
295
+ Example input documents are app-provided metadata. Core does not upload files, call AI providers, or perform heavy spreadsheet parsing. Apps can use them to help AI infer formatting, terminology, expected outputs, required inputs, skill procedures, and prepared prompt variables.
296
+
297
+ ## Agent Kit Structure
298
+
299
+ ```text
300
+ agentkit.yaml
301
+ AGENTKIT.md
302
+ START_HERE.md
303
+ README.md
304
+ LICENSE
305
+ CHANGELOG.md
306
+ skills/<skill-id>/SKILL.md
307
+ prompts/<prompt-id>.yaml
308
+ workflows/
309
+ policies/
310
+ references/
311
+ templates/
312
+ examples/
313
+ evals/
314
+ adapters/
315
+ scripts/
316
+ assets/
317
+ exports/
318
+ ```
319
+
320
+ ## Validation Profiles
321
+
322
+ `local-valid` requires `agentkit.yaml`, `AGENTKIT.md`, `START_HERE.md`, `skills/`, and at least one `skills/<skill-id>/SKILL.md`.
323
+
324
+ `publishable` adds `README.md` and `LICENSE`.
325
+
326
+ `trusted` adds `CHANGELOG.md`, `policies/`, and `examples/`.
327
+
328
+ `verified` adds `evals/`.
@@ -1,7 +1,7 @@
1
- import { readdir, readFile, stat } from "node:fs/promises";
1
+ import { readFile, stat } from "node:fs/promises";
2
2
  import path from "node:path";
3
3
  import YAML from "yaml";
4
- import { resolveInside } from "../fs/safety.js";
4
+ import { resolveInside, safeListFilesRecursive } from "../fs/safety.js";
5
5
  import { parseSkillMarkdown } from "../validation/skill.js";
6
6
  import { readAgentKit } from "../package/reader.js";
7
7
  import { listPreparedPrompts } from "../prompts/prompts.js";
@@ -120,18 +120,7 @@ async function listDirectoryFiles(directoryPath) {
120
120
  if (!(await exists(directoryPath))) {
121
121
  return [];
122
122
  }
123
- const entries = await readdir(directoryPath, { withFileTypes: true });
124
- const files = [];
125
- for (const entry of entries) {
126
- const entryPath = path.join(directoryPath, entry.name);
127
- if (entry.isDirectory()) {
128
- files.push(...(await listDirectoryFiles(entryPath)));
129
- }
130
- else if (entry.isFile()) {
131
- files.push(entryPath);
132
- }
133
- }
134
- return files.sort();
123
+ return (await safeListFilesRecursive(directoryPath)).map((file) => file.absolutePath).sort();
135
124
  }
136
125
  async function exists(filePath) {
137
126
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"loadAsDraft.js","sourceRoot":"","sources":["../../src/app/loadAsDraft.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"loadAsDraft.js","sourceRoot":"","sources":["../../src/app/loadAsDraft.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AACxE,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAS5D,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,OAAe;IACvD,MAAM,GAAG,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC,CAAC;IACxC,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;QAClB,MAAM,IAAI,KAAK,CAAC,qEAAqE,CAAC,CAAC;IACzF,CAAC;IAED,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,MAAM,WAAW,GAAG,CAAC,eAAe,CAAC,CAAC;IACtC,MAAM,eAAe,GAAG,MAAM,mBAAmB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAChE,WAAW,CAAC,IAAI,CAAC,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,WAAW,MAAM,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;IAElF,MAAM,MAAM,GAAG,EAAE,CAAC;IAClB,KAAK,MAAM,KAAK,IAAI,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;QACxC,MAAM,SAAS,GAAG,aAAa,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QAC1D,MAAM,MAAM,GAAG,kBAAkB,CAAC,MAAM,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC,EAAE,SAAS,CAAC,CAAC;QAChF,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC7B,MAAM,CAAC,IAAI,CAAC;YACV,EAAE,EAAE,KAAK,CAAC,EAAE;YACZ,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;YACjD,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,SAAS,IAAI,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;YAC1E,OAAO,EAAE,cAAc,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,kCAAkC;YACtF,SAAS,EAAE,cAAc,CAAC,MAAM,CAAC,IAAI,EAAE,WAAW,CAAC,IAAI,gCAAgC;YACvF,MAAM,EAAE,cAAc,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,kBAAkB;SACpE,CAAC,CAAC;IACL,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,GAAG,CAAC,QAAQ,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC;IACzE,MAAM,SAAS,GAAG,MAAM,aAAa,CAAC,GAAG,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;IACjE,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,GAAG,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;IAC/D,MAAM,aAAa,GAAG,MAAM,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC;IACrF,MAAM,cAAc,GAAG,MAAM,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC;IACvF,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7B,QAAQ,CAAC,IAAI,CAAC,2DAA2D,CAAC,CAAC;QAC3E,WAAW,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IACrG,CAAC;IACD,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9B,QAAQ,CAAC,IAAI,CAAC,4DAA4D,CAAC,CAAC;QAC5E,WAAW,CAAC,IAAI,CAAC,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IACtG,CAAC;IAED,OAAO;QACL,KAAK,EAAE;YACL,aAAa,EAAE,GAAG,CAAC,QAAQ,CAAC,aAAa;YACzC,EAAE,EAAE,GAAG,CAAC,QAAQ,CAAC,EAAE;YACnB,IAAI,EAAE,GAAG,CAAC,QAAQ,CAAC,IAAI;YACvB,OAAO,EAAE,GAAG,CAAC,QAAQ,CAAC,OAAO;YAC7B,WAAW,EAAE,GAAG,CAAC,QAAQ,CAAC,WAAW;YACrC,MAAM,EAAE,GAAG,CAAC,QAAQ,CAAC,MAAM;YAC3B,OAAO,EAAE,GAAG,CAAC,QAAQ,CAAC,OAAO;YAC7B,UAAU,EAAE,GAAG,CAAC,QAAQ,CAAC,cAAc,CAAC,UAAU;YAClD,oBAAoB,EAAE,GAAG,CAAC,QAAQ,CAAC,aAAa,CAAC,OAAO;YACxD,SAAS,EAAE,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK;YAClC,MAAM;YACN,QAAQ;YACR,QAAQ;YACR,SAAS;YACT,eAAe;SAChB;QACD,QAAQ;QACR,WAAW,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,EAAE;KAC9C,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,YAAY,CAAC,QAAgB,EAAE,WAAqB,EAAE,QAAkB;IACrF,MAAM,KAAK,GAAG,MAAM,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;IACxE,OAAO,OAAO,CAAC,GAAG,CAChB,KAAK;SACF,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;SACjE,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;QAClB,WAAW,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;QAC/D,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAA4D,CAAC;QACnH,OAAO;YACL,EAAE,EAAE,MAAM,CAAC,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACxD,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,gCAAgC,CAAC;SACnG,CAAC;IACJ,CAAC,CAAC,CACL,CAAC,KAAK,CAAC,GAAG,EAAE;QACX,QAAQ,CAAC,IAAI,CAAC,+DAA+D,CAAC,CAAC;QAC/E,OAAO,EAAE,CAAC;IACZ,CAAC,CAAC,CAAC;AACL,CAAC;AAED,KAAK,UAAU,aAAa,CAAC,QAAgB,EAAE,WAAqB;IAClE,MAAM,KAAK,GAAG,MAAM,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC;IACzE,OAAO,OAAO,CAAC,GAAG,CAChB,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;QACvB,MAAM,YAAY,GAAG,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;QAC1F,WAAW,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;QAC/D,OAAO;YACL,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAC3C,IAAI,EAAE,YAAY;YAClB,OAAO,EAAE,MAAM,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;SACtC,CAAC;IACJ,CAAC,CAAC,CACH,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,YAAY,CAAC,QAAgB,EAAE,WAAqB;IACjE,MAAM,WAAW,GAAG,MAAM,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC,CAAC;IACzF,MAAM,WAAW,GAAG,MAAM,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC,CAAC;IACzF,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IACpG,OAAO,OAAO,CAAC,GAAG,CAChB,WAAW,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;QAC7B,MAAM,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;QACnD,WAAW,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;QAC/D,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACnC,IAAI,UAAU,EAAE,CAAC;YACf,WAAW,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;QACvE,CAAC;QACD,OAAO;YACL,EAAE;YACF,MAAM,EAAE,MAAM,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;YACpC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,MAAM,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS;SACpE,CAAC;IACJ,CAAC,CAAC,CACH,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CAAC,IAAY,EAAE,OAAe;IACnD,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,OAAO,OAAO,mCAAmC,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5F,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;AAC5B,CAAC;AAED,KAAK,UAAU,kBAAkB,CAAC,aAAqB;IACrD,IAAI,CAAC,CAAC,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC;QACnC,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,OAAO,CAAC,MAAM,sBAAsB,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,IAAI,EAAE,CAAC;AAC/F,CAAC;AAED,KAAK,UAAU,MAAM,CAAC,QAAgB;IACpC,IAAI,CAAC;QACH,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC;QACrB,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,SAAS,aAAa,CAAC,KAAa;IAClC,OAAO,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;AACrC,CAAC"}
@@ -1,5 +1,6 @@
1
- import { readdir, readFile, writeFile } from "node:fs/promises";
1
+ import { mkdir, readFile, stat, writeFile } from "node:fs/promises";
2
2
  import path from "node:path";
3
+ import { resolveInside, safeListFilesRecursive } from "../fs/safety.js";
3
4
  import { listPreparedPrompts } from "../prompts/prompts.js";
4
5
  const TOP_LEVEL_FILES = ["START_HERE.md", "AGENTKIT.md"];
5
6
  const OPTIONAL_DIRECTORIES = ["workflows", "policies", "templates"];
@@ -9,14 +10,15 @@ export async function exportOneFile(rootPath, outFile) {
9
10
  for (const file of TOP_LEVEL_FILES) {
10
11
  await appendFileSection(sections, resolvedRoot, file);
11
12
  }
12
- for (const skillFile of await listSkillFiles(path.join(resolvedRoot, "skills"))) {
13
- await appendFileSection(sections, resolvedRoot, path.relative(resolvedRoot, skillFile));
13
+ for (const skillFile of await listSkillFiles(resolvedRoot)) {
14
+ await appendFileSection(sections, resolvedRoot, skillFile);
14
15
  }
15
16
  for (const directory of OPTIONAL_DIRECTORIES) {
16
17
  await appendDirectorySections(sections, resolvedRoot, directory);
17
18
  }
18
19
  await appendPreparedPromptSections(sections, resolvedRoot);
19
20
  const resolvedOut = path.resolve(outFile);
21
+ await mkdir(path.dirname(resolvedOut), { recursive: true });
20
22
  await writeFile(resolvedOut, sections.join("\n\n"), "utf8");
21
23
  return resolvedOut;
22
24
  }
@@ -52,58 +54,39 @@ async function appendDirectorySections(sections, rootPath, relativeDirectory) {
52
54
  if (!(await exists(directoryPath))) {
53
55
  return;
54
56
  }
55
- for (const file of await listMarkdownFiles(directoryPath)) {
56
- await appendFileSection(sections, rootPath, path.relative(rootPath, file));
57
+ for (const file of await listMarkdownFiles(rootPath, relativeDirectory)) {
58
+ await appendFileSection(sections, rootPath, file);
57
59
  }
58
60
  }
59
61
  async function appendFileSection(sections, rootPath, relativePath) {
60
62
  const normalizedRelativePath = relativePath.replaceAll("\\", "/");
61
- const content = await readFile(path.join(rootPath, relativePath), "utf8");
63
+ const content = await readFile(resolveInside(rootPath, relativePath), "utf8");
62
64
  sections.push(`<!-- BEGIN ${normalizedRelativePath} -->\n\n${content.trim()}\n\n<!-- END ${normalizedRelativePath} -->`);
63
65
  }
64
- async function listSkillFiles(skillsRoot) {
66
+ async function listSkillFiles(rootPath) {
67
+ const skillsRoot = resolveInside(rootPath, "skills");
65
68
  if (!(await exists(skillsRoot))) {
66
69
  return [];
67
70
  }
68
- const entries = await readdir(skillsRoot, { withFileTypes: true });
69
- const skillFiles = [];
70
- for (const entry of entries) {
71
- if (entry.isDirectory()) {
72
- const skillFile = path.join(skillsRoot, entry.name, "SKILL.md");
73
- if (await exists(skillFile)) {
74
- skillFiles.push(skillFile);
75
- }
76
- }
77
- }
78
- return skillFiles.sort();
71
+ return (await safeListFilesRecursive(skillsRoot))
72
+ .filter((file) => file.relativePath.split("/").length === 2 && file.relativePath.endsWith("/SKILL.md"))
73
+ .map((file) => `skills/${file.relativePath}`)
74
+ .sort();
79
75
  }
80
- async function listMarkdownFiles(rootPath) {
81
- const entries = await readdir(rootPath, { withFileTypes: true });
82
- const files = [];
83
- for (const entry of entries) {
84
- const entryPath = path.join(rootPath, entry.name);
85
- if (entry.isDirectory()) {
86
- files.push(...(await listMarkdownFiles(entryPath)));
87
- }
88
- else if (entry.isFile() && entry.name.toLowerCase().endsWith(".md")) {
89
- files.push(entryPath);
90
- }
91
- }
92
- return files.sort();
76
+ async function listMarkdownFiles(rootPath, relativeDirectory) {
77
+ const directoryPath = resolveInside(rootPath, relativeDirectory);
78
+ return (await safeListFilesRecursive(directoryPath))
79
+ .filter((file) => file.relativePath.toLowerCase().endsWith(".md"))
80
+ .map((file) => `${relativeDirectory}/${file.relativePath}`)
81
+ .sort();
93
82
  }
94
83
  async function exists(filePath) {
95
84
  try {
96
- await readdir(filePath);
85
+ await stat(filePath);
97
86
  return true;
98
87
  }
99
88
  catch {
100
- try {
101
- await readFile(filePath);
102
- return true;
103
- }
104
- catch {
105
- return false;
106
- }
89
+ return false;
107
90
  }
108
91
  }
109
92
  //# sourceMappingURL=onefile.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"onefile.js","sourceRoot":"","sources":["../../src/export/onefile.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"onefile.js","sourceRoot":"","sources":["../../src/export/onefile.ts"],"names":[],"mappings":"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"}
package/dist/fs/safety.js CHANGED
@@ -5,10 +5,14 @@ export const DEFAULT_MAX_FILES = 1000;
5
5
  export const DEFAULT_MAX_BYTES = 25 * 1024 * 1024;
6
6
  const DEFAULT_EXCLUDED_DIRS = new Set([".git", "node_modules", "dist", "build"]);
7
7
  const DEFAULT_EXCLUDED_PATHS = ["exports/"];
8
+ const WINDOWS_RESERVED_NAMES = /^(con|prn|aux|nul|com[1-9]|lpt[1-9])(?:\.|$)/i;
8
9
  export function assertSafeId(id, label = "id") {
9
10
  if (!/^[a-z0-9][a-z0-9-]*$/.test(id)) {
10
11
  throw new Error(`${label} must use lowercase letters, numbers, and hyphens`);
11
12
  }
13
+ if (WINDOWS_RESERVED_NAMES.test(id)) {
14
+ throw new Error(`${label} must not use a Windows reserved device name`);
15
+ }
12
16
  }
13
17
  export function isSafeId(id) {
14
18
  try {
@@ -29,13 +33,22 @@ export function sanitizePathSegment(value) {
29
33
  return sanitized || "agentkit";
30
34
  }
31
35
  export function assertSafeRelativePath(relativePath) {
32
- if (!relativePath || relativePath.includes("\0")) {
33
- throw new Error("Path must not be empty or contain null bytes");
36
+ if (!relativePath) {
37
+ throw new Error("Path must not be empty");
34
38
  }
35
- if (path.isAbsolute(relativePath) || /^[a-zA-Z]:[\\/]/.test(relativePath)) {
36
- throw new Error(`Path must be relative: ${relativePath}`);
39
+ if (relativePath.includes("\0")) {
40
+ throw new Error("Path must not contain null bytes");
37
41
  }
38
42
  const normalized = relativePath.replaceAll("\\", "/");
43
+ if (normalized.startsWith("//")) {
44
+ throw new Error(`Path must not use UNC or extended-length syntax: ${relativePath}`);
45
+ }
46
+ if (/^[a-zA-Z]:/.test(normalized)) {
47
+ throw new Error(`Path must not use a Windows drive prefix: ${relativePath}`);
48
+ }
49
+ if (path.isAbsolute(relativePath) || path.posix.isAbsolute(normalized)) {
50
+ throw new Error(`Path must be relative: ${relativePath}`);
51
+ }
39
52
  if (normalized.split("/").some((part) => part === "..")) {
40
53
  throw new Error(`Path must not contain '..': ${relativePath}`);
41
54
  }
@@ -1 +1 @@
1
- {"version":3,"file":"safety.js","sourceRoot":"","sources":["../../src/fs/safety.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"safety.js","sourceRoot":"","sources":["../../src/fs/safety.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
- {
1
+ {
2
2
  "name": "@agentkitforge/core",
3
- "version": "0.1.0",
4
- "description": "Core package, validation, export, and packaging engine for AgentKitForge.",
5
- "type": "module",
3
+ "version": "0.2.0",
4
+ "description": "Core package, validation, export, and packaging engine for AgentKitForge.",
5
+ "type": "module",
6
6
  "bin": {
7
7
  "agentkitforge": "dist/cli/index.js"
8
8
  },
@@ -25,33 +25,33 @@
25
25
  "smoke": "node scripts/smoke.mjs",
26
26
  "test": "vitest run",
27
27
  "typecheck": "tsc -p tsconfig.json --noEmit"
28
- },
29
- "keywords": [
30
- "agentkit",
31
- "agents",
32
- "validation",
33
- "cli"
28
+ },
29
+ "keywords": [
30
+ "agentkit",
31
+ "agents",
32
+ "validation",
33
+ "cli"
34
34
  ],
35
35
  "license": "Apache-2.0",
36
36
  "repository": {
37
37
  "type": "git",
38
- "url": "git+https://github.com/AgentKitProject/agentkitforge-core.git"
38
+ "url": "https://github.com/AgentKitProject/agentkitforge-core"
39
39
  },
40
40
  "publishConfig": {
41
41
  "access": "public"
42
42
  },
43
43
  "dependencies": {
44
- "commander": "^14.0.2",
45
- "jszip": "^3.10.1",
46
- "yaml": "^2.8.2",
47
- "zod": "^4.1.13"
48
- },
49
- "devDependencies": {
50
- "@types/node": "^24.10.1",
51
- "typescript": "^5.9.3",
52
- "vitest": "^4.0.14"
53
- },
54
- "engines": {
55
- "node": ">=26"
56
- }
57
- }
44
+ "commander": "^14.0.2",
45
+ "jszip": "^3.10.1",
46
+ "yaml": "^2.8.2",
47
+ "zod": "^4.1.13"
48
+ },
49
+ "devDependencies": {
50
+ "@types/node": "^24.10.1",
51
+ "typescript": "^5.9.3",
52
+ "vitest": "^4.0.14"
53
+ },
54
+ "engines": {
55
+ "node": ">=24"
56
+ }
57
+ }