instrux 0.1.0 → 0.3.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/LICENSE-APACHE ADDED
@@ -0,0 +1,13 @@
1
+ Copyright 2026 Travis Sharp
2
+
3
+ Licensed under the Apache License, Version 2.0 (the "License");
4
+ you may not use this file except in compliance with the License.
5
+ You may obtain a copy of the License at
6
+
7
+ http://www.apache.org/licenses/LICENSE-2.0
8
+
9
+ Unless required by applicable law or agreed to in writing, software
10
+ distributed under the License is distributed on an "AS IS" BASIS,
11
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ See the License for the specific language governing permissions and
13
+ limitations under the License.
package/LICENSE-MIT ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Travis Sharp
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md CHANGED
@@ -39,6 +39,7 @@ instrux build MyAgent
39
39
  |---|---|
40
40
  | `instrux init <name>` | Scaffold a simple-merge agent |
41
41
  | `instrux init -t <name>` | Scaffold a template-compiled agent |
42
+ | `instrux config:init` | Create repository-level config file |
42
43
  | `instrux build <name>` | Build (merge or compile) an agent |
43
44
  | `instrux build --all` | Build all agents |
44
45
  | `instrux list` | List all agents |
@@ -47,6 +48,114 @@ instrux build MyAgent
47
48
 
48
49
  ---
49
50
 
51
+ ## Repository Configuration
52
+
53
+ A repository-level config file (`instrux.json`) at your project root sets default settings for all agents.
54
+
55
+ **Auto-creation:** When you run `instrux init` for the first time, the repository config is created automatically with sensible defaults.
56
+
57
+ You can also create it manually:
58
+
59
+ ```bash
60
+ instrux config:init
61
+ ```
62
+
63
+ This creates an `instrux.json` file with default settings:
64
+
65
+ ```json
66
+ {
67
+ "agentsDirectory": "agents",
68
+ "outputDirectory": "out",
69
+ "mergeSettings": {
70
+ "addSeparators": true,
71
+ "separatorStyle": "---",
72
+ "includeFileHeaders": false,
73
+ "preserveFormatting": true,
74
+ "generateHash": false,
75
+ "useTimestamp": false
76
+ },
77
+ "frontmatter": {
78
+ "output": "strip"
79
+ },
80
+ "sources": ["agents/base/**/*.md"]
81
+ }
82
+ ```
83
+
84
+ **Configuration Options:**
85
+
86
+ | Field | Default | Description |
87
+ |---|---|---|
88
+ | `agentsDirectory` | `"agents"` | Directory containing agent folders (e.g., `"src/agents"` for src/agents/MyAgent/) |
89
+ | `outputDirectory` | `"out"` | Where to write compiled output files |
90
+ | `mergeSettings` | See above | Default merge behavior for all agents |
91
+ | `frontmatter` | `{ output: "strip" }` | How to handle frontmatter in output |
92
+ | `sources` | `["agents/base/**/*.md"]` | Default source patterns for template mode |
93
+
94
+ **Benefits:**
95
+ - Set defaults once for all agents
96
+ - Individual agent configs inherit these settings
97
+ - Agent configs can override any setting
98
+ - Keep agent configs minimal and focused
99
+
100
+ **Example workflow:**
101
+
102
+ ```bash
103
+ # 1. Create your first agent (auto-creates instrux.json)
104
+ instrux init MyAgent
105
+
106
+ # 2. (Optional) Edit instrux.json to customize defaults
107
+
108
+ # 3. Create more agents - they inherit repo defaults
109
+ instrux init AnotherAgent
110
+
111
+ # 4. Agent configs only need to specify what's unique
112
+ ```
113
+
114
+ **Using a custom agents directory:**
115
+
116
+ To organize agents in a different location (e.g., `src/agents`):
117
+
118
+ ```bash
119
+ # 1. Create instrux.json first
120
+ instrux config:init
121
+
122
+ # 2. Edit instrux.json and change agentsDirectory
123
+ # {
124
+ # "agentsDirectory": "src/agents",
125
+ # ...
126
+ # }
127
+
128
+ # 3. Now create agents - they'll be in src/agents/
129
+ instrux init MyAgent
130
+ # Creates: src/agents/MyAgent/agent.json
131
+ ```
132
+
133
+ **Config inheritance and precedence:**
134
+
135
+ Settings are merged in this order (later overrides earlier):
136
+ 1. Built-in defaults (`DEFAULT_MERGE_SETTINGS`)
137
+ 2. Repository config (`instrux.json`)
138
+ 3. Agent config (`agents/<name>/agent.json`)
139
+
140
+ This means:
141
+ - If a setting is in the agent config, it's used
142
+ - Otherwise, if it's in the repo config, it's used
143
+ - Otherwise, the built-in default is used
144
+
145
+ You can make agent configs minimal by removing fields you want to inherit:
146
+
147
+ ```json
148
+ {
149
+ "name": "MyAgent",
150
+ "description": "My agent",
151
+ "files": [...]
152
+ // outputDirectory inherited from instrux.json
153
+ // mergeSettings inherited from instrux.json
154
+ }
155
+ ```
156
+
157
+ ---
158
+
50
159
  ## Simple Mode (v1)
51
160
 
52
161
  Files are merged in the order listed in `agent.json`:
@@ -269,6 +378,46 @@ const compiler = new InstruxCompiler(process.cwd(), config);
269
378
  const { output, filesCompiled, tagsUsed } = await compiler.compile();
270
379
  ```
271
380
 
381
+ ## Development
382
+
383
+ ### Running Tests
384
+
385
+ This project uses Jest for testing:
386
+
387
+ ```bash
388
+ # Run all tests
389
+ npm test
390
+
391
+ # Run tests in watch mode
392
+ npm run test:watch
393
+
394
+ # Run tests with coverage
395
+ npm run test:coverage
396
+ ```
397
+
398
+ ### Building
399
+
400
+ ```bash
401
+ # Build TypeScript to JavaScript
402
+ npm run build
403
+
404
+ # Watch mode for development
405
+ npm run watch
406
+ ```
407
+
408
+ ### Project Structure
409
+
410
+ ```
411
+ src/
412
+ cli.ts # CLI entry point
413
+ engine.ts # Core build engine
414
+ compiler.ts # Template compiler
415
+ init.ts # Scaffolding functions
416
+ frontmatter.ts # Frontmatter parsing
417
+ types.ts # TypeScript types
418
+ *.test.ts # Jest test files
419
+ ```
420
+
272
421
  ## License
273
422
 
274
423
  This project is dual-licensed under your choice of:
package/dist/cli.d.ts CHANGED
@@ -4,6 +4,7 @@
4
4
  *
5
5
  * Commands:
6
6
  * instrux init <name> Scaffold a new agent
7
+ * instrux config:init Create repository-level config
7
8
  * instrux build <name> Merge instruction files for an agent
8
9
  * instrux build --all Build all agents
9
10
  * instrux list List available agents
package/dist/cli.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAEA;;;;;;;;;;GAUG"}
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAEA;;;;;;;;;;;GAWG"}
package/dist/cli.js CHANGED
@@ -5,16 +5,69 @@
5
5
  *
6
6
  * Commands:
7
7
  * instrux init <name> Scaffold a new agent
8
+ * instrux config:init Create repository-level config
8
9
  * instrux build <name> Merge instruction files for an agent
9
10
  * instrux build --all Build all agents
10
11
  * instrux list List available agents
11
12
  * instrux config <name> Show agent configuration
12
13
  * instrux validate <name> Validate source files exist
13
14
  */
15
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
16
+ if (k2 === undefined) k2 = k;
17
+ var desc = Object.getOwnPropertyDescriptor(m, k);
18
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
19
+ desc = { enumerable: true, get: function() { return m[k]; } };
20
+ }
21
+ Object.defineProperty(o, k2, desc);
22
+ }) : (function(o, m, k, k2) {
23
+ if (k2 === undefined) k2 = k;
24
+ o[k2] = m[k];
25
+ }));
26
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
27
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
28
+ }) : function(o, v) {
29
+ o["default"] = v;
30
+ });
31
+ var __importStar = (this && this.__importStar) || (function () {
32
+ var ownKeys = function(o) {
33
+ ownKeys = Object.getOwnPropertyNames || function (o) {
34
+ var ar = [];
35
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
36
+ return ar;
37
+ };
38
+ return ownKeys(o);
39
+ };
40
+ return function (mod) {
41
+ if (mod && mod.__esModule) return mod;
42
+ var result = {};
43
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
44
+ __setModuleDefault(result, mod);
45
+ return result;
46
+ };
47
+ })();
14
48
  Object.defineProperty(exports, "__esModule", { value: true });
15
49
  const commander_1 = require("commander");
50
+ const path = __importStar(require("path"));
51
+ const fs = __importStar(require("fs-extra"));
16
52
  const engine_1 = require("./engine");
17
53
  const init_1 = require("./init");
54
+ /**
55
+ * Load repo config to get agentsDirectory for help text.
56
+ */
57
+ async function getAgentsDir(rootDir) {
58
+ const configPath = path.join(rootDir, 'instrux.json');
59
+ if (await fs.pathExists(configPath)) {
60
+ try {
61
+ const raw = await fs.readFile(configPath, 'utf-8');
62
+ const config = JSON.parse(raw);
63
+ return config.agentsDirectory ?? 'agents';
64
+ }
65
+ catch {
66
+ return 'agents';
67
+ }
68
+ }
69
+ return 'agents';
70
+ }
18
71
  const pkg = require('../package.json');
19
72
  const program = new commander_1.Command();
20
73
  program
@@ -33,20 +86,26 @@ program
33
86
  ? await (0, init_1.initTemplateAgent)(cwd, name)
34
87
  : await (0, init_1.initAgent)(cwd, name);
35
88
  const mode = opts.template ? 'template' : 'simple';
89
+ const isFirstAgent = created.includes('instrux.json');
90
+ const agentsDir = await getAgentsDir(cwd);
36
91
  console.log(`\n\u2705 Agent "${name}" initialized (${mode} mode)!\n`);
92
+ if (isFirstAgent) {
93
+ console.log('Created repository config (instrux.json) with default settings.');
94
+ console.log('This provides defaults for all agents in the project.\n');
95
+ }
37
96
  console.log('Created:');
38
97
  created.forEach(f => console.log(` ${f}`));
39
98
  if (opts.template) {
40
99
  console.log(`\nNext steps:`);
41
- console.log(` 1. Edit agents/base/*.md to define shared instructions`);
42
- console.log(` 2. Edit agents/${name}/domain.md with domain knowledge`);
43
- console.log(` 3. Edit agents/${name}/template.md to compose via {{tag "..."}}`);
100
+ console.log(` 1. Edit ${agentsDir}/base/*.md to define shared instructions`);
101
+ console.log(` 2. Edit ${agentsDir}/${name}/domain.md with domain knowledge`);
102
+ console.log(` 3. Edit ${agentsDir}/${name}/template.md to compose via {{tag "..."}}`);
44
103
  console.log(` 4. Run: instrux build ${name}\n`);
45
104
  }
46
105
  else {
47
106
  console.log(`\nNext steps:`);
48
- console.log(` 1. Edit agents/${name}/specialization.md with your instructions`);
49
- console.log(` 2. Edit agents/${name}/agent.json to add more files if needed`);
107
+ console.log(` 1. Edit ${agentsDir}/${name}/specialization.md with your instructions`);
108
+ console.log(` 2. Edit ${agentsDir}/${name}/agent.json to add more files if needed`);
50
109
  console.log(` 3. Run: instrux build ${name}\n`);
51
110
  }
52
111
  }
@@ -55,6 +114,30 @@ program
55
114
  process.exit(1);
56
115
  }
57
116
  });
117
+ // ── config:init ────────────────────────────────────────────
118
+ program
119
+ .command('config:init')
120
+ .description('Create a repository-level config file (instrux.json)')
121
+ .action(async () => {
122
+ try {
123
+ const cwd = process.cwd();
124
+ const created = await (0, init_1.initRepoConfig)(cwd);
125
+ console.log(`\n✅ Repository config created!\n`);
126
+ console.log(`Created: ${created}\n`);
127
+ console.log('This file provides default settings for all agents.');
128
+ console.log('Individual agent configs will inherit and can override these settings.\n');
129
+ console.log('Default settings:');
130
+ console.log(' - agentsDirectory: "agents"');
131
+ console.log(' - outputDirectory: "out"');
132
+ console.log(' - mergeSettings: standard defaults');
133
+ console.log(' - frontmatter: { output: "strip" }');
134
+ console.log(' - sources: ["agents/base/**/*.md"]\n');
135
+ }
136
+ catch (err) {
137
+ console.error(`❌ ${err.message}`);
138
+ process.exit(1);
139
+ }
140
+ });
58
141
  // ── build ──────────────────────────────────────────────────
59
142
  program
60
143
  .command('build [name]')
@@ -109,10 +192,17 @@ program
109
192
  console.log('\nAvailable agents:\n');
110
193
  for (const agent of agents) {
111
194
  if (agent.config) {
112
- const mode = agent.config.entry ? 'template' : 'simple';
113
- console.log(` ${agent.name} [${mode}]`);
114
- console.log(` ${agent.config.description}`);
115
- console.log(` Files: ${agent.config.files?.length ?? agent.config.sources?.length ?? 0} \u2192 ${agent.config.outputDirectory}/${agent.config.outputFilePattern}`);
195
+ try {
196
+ // Load full resolved config to get all values with defaults
197
+ const resolved = await engine.loadConfig(agent.name);
198
+ const mode = resolved.entry ? 'template' : 'simple';
199
+ console.log(` ${agent.name} [${mode}]`);
200
+ console.log(` ${resolved.description}`);
201
+ console.log(` Files: ${resolved.files?.length ?? resolved.sources?.length ?? 0} \u2192 ${resolved.outputDirectory}/${resolved.outputFilePattern}`);
202
+ }
203
+ catch (err) {
204
+ console.log(` ${agent.name} (error loading config)`);
205
+ }
116
206
  }
117
207
  else {
118
208
  console.log(` ${agent.name} (invalid or missing agent.json)`);
@@ -140,9 +230,13 @@ program
140
230
  });
141
231
  console.log();
142
232
  console.log(' Merge settings:');
143
- Object.entries(config.mergeSettings).forEach(([k, v]) => {
144
- console.log(` ${k}: ${v}`);
145
- });
233
+ const ms = config.mergeSettings;
234
+ console.log(` addSeparators: ${ms.addSeparators}`);
235
+ console.log(` separatorStyle: ${ms.separatorStyle}`);
236
+ console.log(` includeFileHeaders: ${ms.includeFileHeaders}`);
237
+ console.log(` preserveFormatting: ${ms.preserveFormatting}`);
238
+ console.log(` generateHash: ${ms.generateHash}`);
239
+ console.log(` useTimestamp: ${ms.useTimestamp}`);
146
240
  console.log();
147
241
  }
148
242
  catch (err) {
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -11,7 +11,7 @@
11
11
  * 4. Cycle detection via a compile stack
12
12
  * 5. Emit final output with optional frontmatter passthrough
13
13
  */
14
- import { AgentConfig } from './types';
14
+ import { ResolvedAgentConfig } from './types';
15
15
  export interface CompileResult {
16
16
  /** Final compiled output (may include frontmatter block) */
17
17
  output: string;
@@ -27,7 +27,7 @@ export declare class InstruxCompiler {
27
27
  private compileStack;
28
28
  private compiledFiles;
29
29
  private tagsUsed;
30
- constructor(rootDir: string, config: AgentConfig);
30
+ constructor(rootDir: string, config: ResolvedAgentConfig);
31
31
  compile(): Promise<CompileResult>;
32
32
  private compileFile;
33
33
  private registerHelpers;
@@ -1 +1 @@
1
- {"version":3,"file":"compiler.d.ts","sourceRoot":"","sources":["../src/compiler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAMH,OAAO,EACL,WAAW,EAIZ,MAAM,SAAS,CAAC;AAQjB,MAAM,WAAW,aAAa;IAC5B,4DAA4D;IAC5D,MAAM,EAAE,MAAM,CAAC;IACf,gDAAgD;IAChD,aAAa,EAAE,MAAM,CAAC;IACtB,mDAAmD;IACnD,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,qBAAa,eAAe;IAC1B,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,KAAK,CAAe;IAC5B,OAAO,CAAC,YAAY,CAA0B;IAC9C,OAAO,CAAC,aAAa,CAA0B;IAC/C,OAAO,CAAC,QAAQ,CAA0B;gBAE9B,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW;IAO1C,OAAO,IAAI,OAAO,CAAC,aAAa,CAAC;IAgDvC,OAAO,CAAC,WAAW;IA+CnB,OAAO,CAAC,eAAe;CA2ExB"}
1
+ {"version":3,"file":"compiler.d.ts","sourceRoot":"","sources":["../src/compiler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAMH,OAAO,EAEL,mBAAmB,EAIpB,MAAM,SAAS,CAAC;AAQjB,MAAM,WAAW,aAAa;IAC5B,4DAA4D;IAC5D,MAAM,EAAE,MAAM,CAAC;IACf,gDAAgD;IAChD,aAAa,EAAE,MAAM,CAAC;IACtB,mDAAmD;IACnD,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,qBAAa,eAAe;IAC1B,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,MAAM,CAAsB;IACpC,OAAO,CAAC,KAAK,CAAe;IAC5B,OAAO,CAAC,YAAY,CAA0B;IAC9C,OAAO,CAAC,aAAa,CAA0B;IAC/C,OAAO,CAAC,QAAQ,CAA0B;gBAE9B,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,mBAAmB;IAOlD,OAAO,IAAI,OAAO,CAAC,aAAa,CAAC;IAgDvC,OAAO,CAAC,WAAW;IA+CnB,OAAO,CAAC,eAAe;CA2ExB"}
@@ -1 +1 @@
1
- {"version":3,"file":"compiler.js","sourceRoot":"","sources":["../src/compiler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"compiler.js","sourceRoot":"","sources":["../src/compiler.ts"],"names":[],"mappings":"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"}
package/dist/engine.d.ts CHANGED
@@ -5,34 +5,47 @@
5
5
  * - Simple merge: concatenates files in order (v1)
6
6
  * - Compile: resolves Handlebars templates + frontmatter tags (v2)
7
7
  */
8
- import { AgentConfig, BuildResult, ValidationResult } from './types';
8
+ import { AgentConfig, ResolvedAgentConfig, RepoConfig, BuildResult, ValidationResult } from './types';
9
9
  export declare class InstruxEngine {
10
10
  private rootDir;
11
+ private repoConfig;
11
12
  constructor(rootDir?: string);
13
+ /**
14
+ * Load repository-level configuration from instrux.json at project root.
15
+ * This is cached after the first load.
16
+ */
17
+ loadRepoConfig(): Promise<RepoConfig | null>;
18
+ /**
19
+ * Merge repository config with agent config.
20
+ * Agent config takes precedence over repository config.
21
+ * Returns a config with all required fields populated.
22
+ */
23
+ private mergeConfigs;
12
24
  /**
13
25
  * Resolve the config path for a given agent name.
14
- * Looks in `agents/<name>/agent.json`.
26
+ * Looks in `<agentsDir>/<name>/agent.json`.
15
27
  */
16
28
  private agentConfigPath;
17
29
  /**
18
30
  * Load an agent configuration by name.
31
+ * Merges with repository-level config if present.
19
32
  */
20
- loadConfig(agentName: string): Promise<AgentConfig>;
33
+ loadConfig(agentName: string): Promise<ResolvedAgentConfig>;
21
34
  /**
22
- * List all agents found in the `agents/` directory.
35
+ * List all agents found in the configured agents directory.
23
36
  */
24
37
  listAgents(): Promise<{
25
38
  name: string;
26
39
  config: AgentConfig | null;
27
40
  }[]>;
28
- validate(config: AgentConfig): Promise<ValidationResult>;
29
- merge(config: AgentConfig): Promise<string>;
30
- writeOutput(config: AgentConfig, content: string): Promise<string>;
41
+ validate(config: ResolvedAgentConfig): Promise<ValidationResult>;
42
+ merge(config: ResolvedAgentConfig): Promise<string>;
43
+ writeOutput(config: ResolvedAgentConfig, content: string): Promise<string>;
31
44
  /**
32
45
  * Returns true if the agent config uses the template compiler (v2)
33
46
  * instead of simple ordered merge.
34
47
  */
35
- isCompileMode(config: AgentConfig): boolean;
48
+ isCompileMode(config: ResolvedAgentConfig): boolean;
36
49
  build(agentName: string): Promise<BuildResult>;
37
50
  contentHash(content: string): string;
38
51
  }
@@ -1 +1 @@
1
- {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAKH,OAAO,EACL,WAAW,EACX,WAAW,EACX,gBAAgB,EACjB,MAAM,SAAS,CAAC;AAGjB,qBAAa,aAAa;IACxB,OAAO,CAAC,OAAO,CAAS;gBAEZ,OAAO,CAAC,EAAE,MAAM;IAM5B;;;OAGG;IACH,OAAO,CAAC,eAAe;IAIvB;;OAEG;IACG,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAgBzD;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,WAAW,GAAG,IAAI,CAAA;KAAE,EAAE,CAAC;IAgCrE,QAAQ,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAqBxD,KAAK,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC;IA+C3C,WAAW,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IA4BxE;;;OAGG;IACH,aAAa,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO;IAIrC,KAAK,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAgDpD,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;CAOrC"}
1
+ {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAKH,OAAO,EACL,WAAW,EACX,mBAAmB,EACnB,UAAU,EACV,WAAW,EACX,gBAAgB,EAGjB,MAAM,SAAS,CAAC;AAGjB,qBAAa,aAAa;IACxB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,UAAU,CAA2B;gBAEjC,OAAO,CAAC,EAAE,MAAM;IAM5B;;;OAGG;IACG,cAAc,IAAI,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAuBlD;;;;OAIG;IACH,OAAO,CAAC,YAAY;IAoBpB;;;OAGG;YACW,eAAe;IAM7B;;;OAGG;IACG,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAoBjE;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,WAAW,GAAG,IAAI,CAAA;KAAE,EAAE,CAAC;IAiCrE,QAAQ,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAqBhE,KAAK,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,MAAM,CAAC;IA+CnD,WAAW,CAAC,MAAM,EAAE,mBAAmB,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IA4BhF;;;OAGG;IACH,aAAa,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO;IAI7C,KAAK,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAgDpD,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;CAOrC"}
package/dist/engine.js CHANGED
@@ -44,37 +44,92 @@ exports.InstruxEngine = void 0;
44
44
  const fs = __importStar(require("fs-extra"));
45
45
  const path = __importStar(require("path"));
46
46
  const crypto = __importStar(require("crypto"));
47
+ const types_1 = require("./types");
47
48
  const compiler_1 = require("./compiler");
48
49
  class InstruxEngine {
49
50
  constructor(rootDir) {
51
+ this.repoConfig = null;
50
52
  this.rootDir = rootDir ?? process.cwd();
51
53
  }
54
+ // ── Repo config loading ───────────────────────
55
+ /**
56
+ * Load repository-level configuration from instrux.json at project root.
57
+ * This is cached after the first load.
58
+ */
59
+ async loadRepoConfig() {
60
+ if (this.repoConfig !== null) {
61
+ return this.repoConfig;
62
+ }
63
+ const configPath = path.join(this.rootDir, 'instrux.json');
64
+ if (!(await fs.pathExists(configPath))) {
65
+ this.repoConfig = {};
66
+ return this.repoConfig;
67
+ }
68
+ try {
69
+ const raw = await fs.readFile(configPath, 'utf-8');
70
+ this.repoConfig = JSON.parse(raw);
71
+ return this.repoConfig;
72
+ }
73
+ catch (err) {
74
+ console.warn(`⚠ Warning: Failed to parse instrux.json: ${err}`);
75
+ this.repoConfig = {};
76
+ return this.repoConfig;
77
+ }
78
+ }
79
+ /**
80
+ * Merge repository config with agent config.
81
+ * Agent config takes precedence over repository config.
82
+ * Returns a config with all required fields populated.
83
+ */
84
+ mergeConfigs(agentConfig, repoConfig) {
85
+ const mergeSettings = {
86
+ ...types_1.DEFAULT_MERGE_SETTINGS,
87
+ ...(repoConfig.mergeSettings ?? {}),
88
+ ...(agentConfig.mergeSettings ?? {}),
89
+ };
90
+ return {
91
+ ...agentConfig,
92
+ agentsDirectory: repoConfig.agentsDirectory ?? 'agents',
93
+ outputDirectory: agentConfig.outputDirectory ?? repoConfig.outputDirectory ?? 'out',
94
+ outputFilePattern: agentConfig.outputFilePattern ?? `${agentConfig.name.toLowerCase()}_instructions.md`,
95
+ sources: agentConfig.sources ?? repoConfig.sources,
96
+ frontmatter: agentConfig.frontmatter ?? repoConfig.frontmatter,
97
+ mergeSettings,
98
+ };
99
+ }
52
100
  // ── Config loading ───────────────────────────────────────
53
101
  /**
54
102
  * Resolve the config path for a given agent name.
55
- * Looks in `agents/<name>/agent.json`.
103
+ * Looks in `<agentsDir>/<name>/agent.json`.
56
104
  */
57
- agentConfigPath(agentName) {
58
- return path.join(this.rootDir, 'agents', agentName, 'agent.json');
105
+ async agentConfigPath(agentName) {
106
+ const repoConfig = await this.loadRepoConfig();
107
+ const agentsDir = repoConfig?.agentsDirectory ?? 'agents';
108
+ return path.join(this.rootDir, agentsDir, agentName, 'agent.json');
59
109
  }
60
110
  /**
61
111
  * Load an agent configuration by name.
112
+ * Merges with repository-level config if present.
62
113
  */
63
114
  async loadConfig(agentName) {
64
- const configPath = this.agentConfigPath(agentName);
115
+ const configPath = await this.agentConfigPath(agentName);
65
116
  if (!(await fs.pathExists(configPath))) {
66
117
  throw new Error(`Agent config not found: ${path.relative(this.rootDir, configPath)}\n` +
67
118
  `Run "instrux init <name>" to create one.`);
68
119
  }
69
120
  const raw = await fs.readFile(configPath, 'utf-8');
70
- return JSON.parse(raw);
121
+ const agentConfig = JSON.parse(raw);
122
+ // Load and merge repository config
123
+ const repoConfig = await this.loadRepoConfig();
124
+ return this.mergeConfigs(agentConfig, repoConfig ?? {});
71
125
  }
72
126
  // ── Discovery ────────────────────────────────────────────
73
127
  /**
74
- * List all agents found in the `agents/` directory.
128
+ * List all agents found in the configured agents directory.
75
129
  */
76
130
  async listAgents() {
77
- const agentsDir = path.join(this.rootDir, 'agents');
131
+ const repoConfig = await this.loadRepoConfig();
132
+ const agentsDir = path.join(this.rootDir, repoConfig?.agentsDirectory ?? 'agents');
78
133
  if (!(await fs.pathExists(agentsDir))) {
79
134
  return [];
80
135
  }