@soleri/forge 5.9.0 → 5.10.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/dist/lib.d.ts CHANGED
@@ -10,3 +10,4 @@ export { addDomain } from './domain-manager.js';
10
10
  export { patchIndexTs, patchClaudeMdContent } from './patching.js';
11
11
  export type { AgentConfig, ScaffoldResult, ScaffoldPreview, AgentInfo, InstallKnowledgeResult, AddDomainResult, } from './types.js';
12
12
  export { AgentConfigSchema } from './types.js';
13
+ export { generateExtensionsIndex, generateExampleOp } from './templates/extensions.js';
package/dist/lib.js CHANGED
@@ -9,4 +9,5 @@ export { installKnowledge, generateVaultOnlyDomainFacade } from './knowledge-ins
9
9
  export { addDomain } from './domain-manager.js';
10
10
  export { patchIndexTs, patchClaudeMdContent } from './patching.js';
11
11
  export { AgentConfigSchema } from './types.js';
12
+ export { generateExtensionsIndex, generateExampleOp } from './templates/extensions.js';
12
13
  //# sourceMappingURL=lib.js.map
package/dist/lib.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"lib.js","sourceRoot":"","sources":["../src/lib.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AACxE,OAAO,EAAE,gBAAgB,EAAE,6BAA6B,EAAE,MAAM,0BAA0B,CAAC;AAC3F,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AASnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"lib.js","sourceRoot":"","sources":["../src/lib.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AACxE,OAAO,EAAE,gBAAgB,EAAE,6BAA6B,EAAE,MAAM,0BAA0B,CAAC;AAC3F,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AASnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,EAAE,uBAAuB,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC"}
@@ -14,6 +14,7 @@ import { generateActivate } from './templates/activate.js';
14
14
  import { generateReadme } from './templates/readme.js';
15
15
  import { generateSetupScript } from './templates/setup-script.js';
16
16
  import { generateSkills } from './templates/skills.js';
17
+ import { generateExtensionsIndex, generateExampleOp } from './templates/extensions.js';
17
18
  /**
18
19
  * Preview what scaffold will create without writing anything.
19
20
  */
@@ -30,7 +31,7 @@ export function previewScaffold(config) {
30
31
  },
31
32
  {
32
33
  path: 'src/index.ts',
33
- description: 'Entry point — thin shell using createAgentRuntime() + createCoreOps() from @soleri/core',
34
+ description: 'Entry point — thin shell using createAgentRuntime() + createSemanticFacades() from @soleri/core',
34
35
  },
35
36
  ...config.domains.map((d) => ({
36
37
  path: `src/intelligence/data/${d}.json`,
@@ -56,6 +57,10 @@ export function previewScaffold(config) {
56
57
  path: 'src/__tests__/facades.test.ts',
57
58
  description: `Facade integration tests — all ${config.domains.length + 1} facades`,
58
59
  },
60
+ {
61
+ path: 'src/extensions/',
62
+ description: 'User extension directory — custom ops, facades, middleware, hooks',
63
+ },
59
64
  { path: '.mcp.json', description: 'MCP client config for connecting to this agent' },
60
65
  {
61
66
  path: 'README.md',
@@ -67,7 +72,9 @@ export function previewScaffold(config) {
67
72
  },
68
73
  {
69
74
  path: 'skills/',
70
- description: '17 built-in skills — TDD, debugging, planning, vault, brain, code patrol, retrospective, onboarding',
75
+ description: config.skills?.length
76
+ ? `${config.skills.length} selected skills`
77
+ : '17 built-in skills — TDD, debugging, planning, vault, brain, code patrol, retrospective, onboarding',
71
78
  },
72
79
  ];
73
80
  if (config.hookPacks?.length) {
@@ -81,263 +88,90 @@ export function previewScaffold(config) {
81
88
  name: `${config.id}_${d.replace(/-/g, '_')}`,
82
89
  ops: ['get_patterns', 'search', 'get_entry', 'capture', 'remove'],
83
90
  })),
91
+ // 10 semantic facades from createSemanticFacades()
84
92
  {
85
- name: `${config.id}_core`,
93
+ name: `${config.id}_vault`,
86
94
  ops: [
87
- // From createCoreOps() — 150 generic ops
88
95
  'search',
89
96
  'vault_stats',
90
97
  'list_all',
91
- 'register',
92
- 'memory_search',
93
- 'memory_capture',
94
- 'memory_list',
95
- 'session_capture',
96
98
  'export',
99
+ 'capture_enriched',
100
+ '...vault-extra',
101
+ '...capture',
102
+ '...intake',
103
+ ],
104
+ },
105
+ {
106
+ name: `${config.id}_plan`,
107
+ ops: [
97
108
  'create_plan',
98
109
  'get_plan',
99
110
  'approve_plan',
100
111
  'update_task',
101
112
  'complete_plan',
113
+ '...planning-extra',
114
+ '...grading',
115
+ ],
116
+ },
117
+ {
118
+ name: `${config.id}_brain`,
119
+ ops: [
102
120
  'record_feedback',
103
121
  'brain_feedback',
104
- 'brain_feedback_stats',
105
- 'rebuild_vocabulary',
106
122
  'brain_stats',
107
123
  'llm_status',
108
- 'brain_session_context',
109
124
  'brain_strengths',
110
- 'brain_global_patterns',
111
- 'brain_recommend',
112
- 'brain_build_intelligence',
113
- 'brain_export',
114
- 'brain_import',
115
- 'brain_extract_knowledge',
116
- 'brain_archive_sessions',
117
- 'brain_promote_proposals',
118
- 'brain_lifecycle',
119
- 'brain_reset_extracted',
120
- // Brain decay report (#89) — 1
121
- 'brain_decay_report',
122
- // Cognee ops — 5
123
- 'cognee_status',
124
- 'cognee_search',
125
- 'cognee_add',
126
- 'cognee_cognify',
127
- 'cognee_config',
128
- // LLM ops — 2
125
+ '...19 brain ops',
126
+ ],
127
+ },
128
+ {
129
+ name: `${config.id}_memory`,
130
+ ops: [
131
+ 'memory_search',
132
+ 'memory_capture',
133
+ 'memory_list',
134
+ 'session_capture',
135
+ '...memory-extra',
136
+ '...cross-project',
137
+ ],
138
+ },
139
+ {
140
+ name: `${config.id}_admin`,
141
+ ops: [
129
142
  'llm_rotate',
130
143
  'llm_call',
131
- // Prompt ops — 2
132
144
  'render_prompt',
133
145
  'list_templates',
134
- 'curator_status',
135
- 'curator_detect_duplicates',
136
- 'curator_contradictions',
137
- 'curator_resolve_contradiction',
138
- 'curator_groom',
139
- 'curator_groom_all',
140
- 'curator_consolidate',
141
- 'curator_health_audit',
142
- 'get_identity',
143
- 'update_identity',
144
- 'add_guideline',
145
- 'remove_guideline',
146
- 'rollback_identity',
147
- 'route_intent',
148
- 'morph',
149
- 'get_behavior_rules',
150
- // Governance ops — 5
151
- 'governance_policy',
152
- 'governance_proposals',
153
- 'governance_stats',
154
- 'governance_expire',
155
- 'governance_dashboard',
156
- // Planning Extra ops — 22
157
- 'plan_iterate',
158
- 'plan_split',
159
- 'plan_reconcile',
160
- 'plan_complete_lifecycle',
161
- 'plan_dispatch',
162
- 'plan_review',
163
- 'plan_archive',
164
- 'plan_list_tasks',
165
- 'plan_stats',
166
- // Planning evidence (#148)
167
- 'plan_submit_evidence',
168
- 'plan_verify_task',
169
- 'plan_verify_plan',
170
- // Subagent dispatch (#149)
171
- 'plan_review_spec',
172
- 'plan_review_quality',
173
- 'plan_review_outcome',
174
- // Brainstorm (#150)
175
- 'plan_brainstorm',
176
- // Auto-reconcile (#151)
177
- 'plan_auto_reconcile',
178
- // Validate plan (#152)
179
- 'plan_validate',
180
- // Execution metrics + deliverables (#80, #83)
181
- 'plan_execution_metrics',
182
- 'plan_record_task_metrics',
183
- 'plan_submit_deliverable',
184
- 'plan_verify_deliverables',
185
- // Memory Extra ops — 8
186
- 'memory_delete',
187
- 'memory_stats',
188
- 'memory_export',
189
- 'memory_import',
190
- 'memory_prune',
191
- 'memory_deduplicate',
192
- 'memory_topics',
193
- 'memory_by_project',
194
- // Vault Extra ops — 12
195
- 'vault_get',
196
- 'vault_update',
197
- 'vault_remove',
198
- 'vault_bulk_add',
199
- 'vault_bulk_remove',
200
- 'vault_tags',
201
- 'vault_domains',
202
- 'vault_recent',
203
- 'vault_import',
204
- 'vault_seed',
205
- 'vault_backup',
206
- 'vault_age_report',
207
- // Vault extra — seed canonical + knowledge lifecycle (5)
208
- 'vault_seed_canonical',
209
- 'knowledge_audit',
210
- 'knowledge_health',
211
- 'knowledge_merge',
212
- 'knowledge_reorganize',
213
- // Bi-temporal vault ops (#89) — 3
214
- 'vault_set_temporal',
215
- 'vault_find_expiring',
216
- 'vault_find_expired',
217
- // Vault archival (#86) — 3
218
- 'vault_archive',
219
- 'vault_restore',
220
- 'vault_optimize',
221
- // Admin ops — 8
222
- 'admin_health',
223
- 'admin_tool_list',
224
- 'admin_config',
225
- 'admin_vault_size',
226
- 'admin_uptime',
227
- 'admin_version',
228
- 'admin_reset_cache',
229
- 'admin_diagnostic',
230
- // Loop ops — 9
231
- 'loop_start',
232
- 'loop_iterate',
233
- 'loop_iterate_gate',
234
- 'loop_status',
235
- 'loop_cancel',
236
- 'loop_history',
237
- 'loop_is_active',
238
- 'loop_complete',
239
- 'loop_anomaly_check',
240
- // Orchestrate ops — 5
241
- 'orchestrate_plan',
242
- 'orchestrate_execute',
243
- 'orchestrate_complete',
244
- 'orchestrate_status',
245
- 'orchestrate_quick_capture',
246
- // Grading ops — 5
247
- 'plan_grade',
248
- 'plan_check_history',
249
- 'plan_latest_check',
250
- 'plan_meets_grade',
251
- 'plan_auto_improve',
252
- // Capture ops — 4
253
- 'capture_knowledge',
254
- 'capture_quick',
255
- 'search_intelligent',
256
- 'search_feedback',
257
- // Enriched capture (#154) — 1
258
- 'capture_enriched',
259
- // Cognee graph (#156) — 3
260
- 'cognee_get_node',
261
- 'cognee_graph_stats',
262
- 'cognee_export_status',
263
- // Cognee Sync ops — 3
264
- 'cognee_sync_status',
265
- 'cognee_sync_drain',
266
- 'cognee_sync_reconcile',
267
- // Intake ops — 4
268
- 'intake_ingest_book',
269
- 'intake_process',
270
- 'intake_status',
271
- 'intake_preview',
272
- // Admin Extra ops — 23
273
- 'admin_telemetry',
274
- 'admin_telemetry_recent',
275
- 'admin_telemetry_reset',
276
- 'admin_permissions',
277
- 'admin_vault_analytics',
278
- 'admin_search_insights',
279
- 'admin_module_status',
280
- 'admin_env',
281
- 'admin_gc',
282
- 'admin_export_config',
283
- // Admin key pool (#157)
284
- 'admin_key_pool_status',
285
- 'admin_create_token',
286
- 'admin_revoke_token',
287
- 'admin_list_tokens',
288
- // Admin accounts (#158)
289
- 'admin_add_account',
290
- 'admin_remove_account',
291
- 'admin_rotate_account',
292
- 'admin_list_accounts',
293
- 'admin_account_status',
294
- // Admin plugins (#159)
295
- 'admin_list_plugins',
296
- 'admin_plugin_status',
297
- // Admin instruction validation (#160)
298
- 'admin_validate_instructions',
299
- // Hot reload (#63)
300
- 'admin_hot_reload',
301
- // Admin persistence (#85) — 1
302
- 'admin_persistence_info',
303
- // Curator Extra ops — 5
304
- 'curator_entry_history',
305
- 'curator_record_snapshot',
306
- 'curator_queue_stats',
307
- 'curator_enrich',
308
- // Hybrid contradiction detection (#36) — 1
309
- 'curator_hybrid_contradictions',
310
- // Project ops — 12
311
- 'project_get',
312
- 'project_list',
313
- 'project_unregister',
314
- 'project_get_rules',
315
- 'project_list_rules',
316
- 'project_add_rule',
317
- 'project_remove_rule',
318
- 'project_link',
319
- 'project_unlink',
320
- 'project_get_links',
321
- 'project_linked_projects',
322
- 'project_touch',
323
- // Cross-project memory ops — 3
324
- 'memory_promote_to_global',
325
- 'memory_configure',
326
- 'memory_cross_project_search',
327
- // Playbook ops — 5
328
- 'playbook_list',
329
- 'playbook_get',
330
- 'playbook_create',
331
- 'playbook_match',
332
- 'playbook_seed',
333
- // Agent-specific ops — 5
334
- 'health',
335
- 'identity',
336
- 'activate',
337
- 'inject_claude_md',
338
- 'setup',
146
+ '...admin',
147
+ '...admin-extra',
339
148
  ],
340
149
  },
150
+ {
151
+ name: `${config.id}_curator`,
152
+ ops: ['curator_status', 'curator_health_audit', '...8 curator ops', '...curator-extra'],
153
+ },
154
+ {
155
+ name: `${config.id}_loop`,
156
+ ops: ['loop_start', 'loop_iterate', 'loop_cancel', '...loop ops'],
157
+ },
158
+ {
159
+ name: `${config.id}_orchestrate`,
160
+ ops: ['register', '...orchestrate', '...project', '...playbook'],
161
+ },
162
+ {
163
+ name: `${config.id}_control`,
164
+ ops: ['get_identity', 'route_intent', 'governance_policy', '...control+governance ops'],
165
+ },
166
+ {
167
+ name: `${config.id}_cognee`,
168
+ ops: ['cognee_status', 'cognee_search', '...cognee ops', '...cognee-sync'],
169
+ },
170
+ // Agent-specific facade
171
+ {
172
+ name: `${config.id}_core`,
173
+ ops: ['health', 'identity', 'activate', 'inject_claude_md', 'setup'],
174
+ },
341
175
  ];
342
176
  return {
343
177
  agentDir,
@@ -380,6 +214,10 @@ export function scaffold(config) {
380
214
  'src/identity',
381
215
  'src/activation',
382
216
  'src/__tests__',
217
+ 'src/extensions',
218
+ 'src/extensions/ops',
219
+ 'src/extensions/facades',
220
+ 'src/extensions/middleware',
383
221
  ];
384
222
  if (config.hookPacks?.length) {
385
223
  dirs.push('.claude');
@@ -415,6 +253,8 @@ export function scaffold(config) {
415
253
  ['src/activation/activate.ts', generateActivate(config)],
416
254
  ['src/index.ts', generateEntryPoint(config)],
417
255
  ['src/__tests__/facades.test.ts', generateFacadesTest(config)],
256
+ ['src/extensions/index.ts', generateExtensionsIndex(config)],
257
+ ['src/extensions/ops/example.ts', generateExampleOp(config)],
418
258
  ];
419
259
  // Empty intelligence data bundles (domain facades come from @soleri/core at runtime)
420
260
  for (const domain of config.domains) {
@@ -432,7 +272,7 @@ export function scaffold(config) {
432
272
  writeFileSync(join(agentDir, path), content, 'utf-8');
433
273
  filesCreated.push(path);
434
274
  }
435
- const totalOps = config.domains.length * 5 + 61; // 5 per domain + 56 core (from createCoreOps) + 5 agent-specific
275
+ const totalOps = config.domains.length * 5 + 214; // 5 per domain + 209 semantic + 5 agent-specific
436
276
  // Auto-build: install dependencies and compile before registering MCP
437
277
  let buildSuccess = false;
438
278
  let buildError;
@@ -466,7 +306,7 @@ export function scaffold(config) {
466
306
  }
467
307
  const summaryLines = [
468
308
  `Created ${config.name} agent at ${agentDir}`,
469
- `${config.domains.length + 1} facades with ${totalOps} operations`,
309
+ `${config.domains.length + 11} facades with ${totalOps} operations`,
470
310
  `${config.domains.length} empty knowledge domains ready for capture`,
471
311
  `Intelligence layer (Brain) — TF-IDF scoring, auto-tagging, duplicate detection`,
472
312
  `Activation system included — say "Hello, ${config.name}!" to activate`,
@@ -1 +1 @@
1
- {"version":3,"file":"scaffolder.js","sourceRoot":"","sources":["../src/scaffolder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scaffolder.js","sourceRoot":"","sources":["../src/scaffolder.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@ import type { AgentConfig } from '../types.js';
2
2
  /**
3
3
  * Generate the main index.ts entry point for the agent.
4
4
  *
5
- * v5.0: Thin shell — delegates to createAgentRuntime(), createCoreOps(),
5
+ * v5.0: Thin shell — delegates to createAgentRuntime(), createSemanticFacades(),
6
6
  * and createDomainFacades() from @soleri/core. Only agent-specific code
7
7
  * (persona, activation) lives here.
8
8
  */
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Generate the main index.ts entry point for the agent.
3
3
  *
4
- * v5.0: Thin shell — delegates to createAgentRuntime(), createCoreOps(),
4
+ * v5.0: Thin shell — delegates to createAgentRuntime(), createSemanticFacades(),
5
5
  * and createDomainFacades() from @soleri/core. Only agent-specific code
6
6
  * (persona, activation) lives here.
7
7
  */
@@ -16,12 +16,13 @@ import { fileURLToPath } from 'node:url';
16
16
 
17
17
  import {
18
18
  createAgentRuntime,
19
- createCoreOps,
19
+ createSemanticFacades,
20
20
  createDomainFacades,
21
21
  registerAllFacades,
22
22
  seedDefaultPlaybooks,
23
+ wrapWithMiddleware,
23
24
  } from '@soleri/core';
24
- import type { OpDefinition } from '@soleri/core';
25
+ import type { OpDefinition, AgentExtensions } from '@soleri/core';
25
26
  import { z } from 'zod';
26
27
  import { PERSONA, getPersonaPrompt } from './identity/persona.js';
27
28
  import { activateAgent, deactivateAgent } from './activation/activate.js';
@@ -198,15 +199,51 @@ async function main(): Promise<void> {
198
199
  ];
199
200
 
200
201
  // ─── Assemble facades ──────────────────────────────────────────
201
- const coreOps = createCoreOps(runtime);
202
- const coreFacade = {
202
+ const semanticFacades = createSemanticFacades(runtime, '${config.id}');
203
+ const agentFacade = {
203
204
  name: '${config.id}_core',
204
- description: 'Core operations — vault stats, cross-domain search, health check, identity, and activation system.',
205
- ops: [...coreOps, ...agentOps],
205
+ description: 'Agent-specific operations — health, identity, activation, CLAUDE.md injection, setup.',
206
+ ops: agentOps,
206
207
  };
207
208
 
208
209
  const domainFacades = createDomainFacades(runtime, '${config.id}', ${domainsLiteral});
209
210
 
211
+ // ─── User extensions (auto-discovered from src/extensions/) ────
212
+ let extensions: AgentExtensions = {};
213
+ try {
214
+ const ext = await import('./extensions/index.js');
215
+ const loader = ext.default ?? (ext as Record<string, unknown>).loadExtensions;
216
+ if (typeof loader === 'function') {
217
+ extensions = loader(runtime);
218
+ } else if (typeof loader === 'object') {
219
+ extensions = loader;
220
+ }
221
+ if (extensions.ops?.length || extensions.facades?.length || extensions.middleware?.length) {
222
+ console.error(\`[\${tag}] Extensions loaded: \${extensions.ops?.length ?? 0} ops, \${extensions.facades?.length ?? 0} facades, \${extensions.middleware?.length ?? 0} middleware\`);
223
+ }
224
+ } catch {
225
+ // No extensions directory or load error — run vanilla
226
+ }
227
+
228
+ // Merge user ops into agent facade
229
+ if (extensions.ops?.length) {
230
+ agentFacade.ops.push(...extensions.ops);
231
+ }
232
+
233
+ // Collect user facades
234
+ const userFacades = extensions.facades ?? [];
235
+
236
+ // Apply middleware to all facades
237
+ const allFacades = [...semanticFacades, agentFacade, ...domainFacades, ...userFacades];
238
+ if (extensions.middleware?.length) {
239
+ wrapWithMiddleware(allFacades, extensions.middleware);
240
+ }
241
+
242
+ // Lifecycle: onStartup
243
+ if (extensions.hooks?.onStartup) {
244
+ await extensions.hooks.onStartup(runtime);
245
+ }
246
+
210
247
  // ─── MCP server ────────────────────────────────────────────────
211
248
  const server = new McpServer({
212
249
  name: '${config.id}-mcp',
@@ -217,11 +254,10 @@ async function main(): Promise<void> {
217
254
  messages: [{ role: 'assistant' as const, content: { type: 'text' as const, text: getPersonaPrompt() } }],
218
255
  }));
219
256
 
220
- const facades = [coreFacade, ...domainFacades];
221
- registerAllFacades(server, facades);
257
+ registerAllFacades(server, allFacades);
222
258
 
223
259
  console.error(\`[\${tag}] \${PERSONA.name} — \${PERSONA.role}\`);
224
- console.error(\`[\${tag}] Registered \${facades.length} facades with \${facades.reduce((sum, f) => sum + f.ops.length, 0)} operations\`);
260
+ console.error(\`[\${tag}] Registered \${allFacades.length} facades with \${allFacades.reduce((sum, f) => sum + f.ops.length, 0)} operations\`);
225
261
 
226
262
  // ─── Transport + shutdown ──────────────────────────────────────
227
263
  const transport = new StdioServerTransport();
@@ -231,6 +267,13 @@ async function main(): Promise<void> {
231
267
 
232
268
  const shutdown = async (): Promise<void> => {
233
269
  console.error(\`[\${tag}] Shutting down...\`);
270
+ if (extensions.hooks?.onShutdown) {
271
+ try {
272
+ await extensions.hooks.onShutdown(runtime);
273
+ } catch (err) {
274
+ console.error(\`[\${tag}] Extension shutdown error:\`, err);
275
+ }
276
+ }
234
277
  runtime.close();
235
278
  process.exit(0);
236
279
  };
@@ -1 +1 @@
1
- {"version":3,"file":"entry-point.js","sourceRoot":"","sources":["../../src/templates/entry-point.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,MAAM,UAAU,kBAAkB,CAAC,MAAmB;IACpD,MAAM,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAEtD,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;gBAyBO,MAAM,CAAC,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gEAsCuC,MAAM,CAAC,EAAE;;;;;;;qGAO4B,MAAM,CAAC,IAAI;;;;;;;;;;;oDAW5D,MAAM,CAAC,EAAE;iDACZ,MAAM,CAAC,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kCA2FxB,MAAM,CAAC,IAAI;;;;;;;;;;;;;;;;;;;;aAoBhC,MAAM,CAAC,EAAE;;;;;wDAKkC,MAAM,CAAC,EAAE,MAAM,cAAc;;;;aAIxE,MAAM,CAAC,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBA8BF,MAAM,CAAC,EAAE;;;CAG5B,CAAC;AACF,CAAC"}
1
+ {"version":3,"file":"entry-point.js","sourceRoot":"","sources":["../../src/templates/entry-point.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,MAAM,UAAU,kBAAkB,CAAC,MAAmB;IACpD,MAAM,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAEtD,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;gBA0BO,MAAM,CAAC,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gEAsCuC,MAAM,CAAC,EAAE;;;;;;;qGAO4B,MAAM,CAAC,IAAI;;;;;;;;;;;oDAW5D,MAAM,CAAC,EAAE;iDACZ,MAAM,CAAC,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kCA2FxB,MAAM,CAAC,IAAI;;;;;;;;;;;;;;;;;;4DAkBe,MAAM,CAAC,EAAE;;aAExD,MAAM,CAAC,EAAE;;;;;wDAKkC,MAAM,CAAC,EAAE,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aAwCxE,MAAM,CAAC,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAoCF,MAAM,CAAC,EAAE;;;CAG5B,CAAC;AACF,CAAC"}
@@ -0,0 +1,10 @@
1
+ import type { AgentConfig } from '../types.js';
2
+ /**
3
+ * Generate the extensions manifest (src/extensions/index.ts).
4
+ * This is the user's entry point for customization.
5
+ */
6
+ export declare function generateExtensionsIndex(config: AgentConfig): string;
7
+ /**
8
+ * Generate an example custom op file.
9
+ */
10
+ export declare function generateExampleOp(config: AgentConfig): string;