@technomoron/agent-run 0.99.14 → 0.99.15

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/CHANGES CHANGED
@@ -1,6 +1,10 @@
1
1
  CHANGES
2
2
  =======
3
3
 
4
+ Version 0.99.15 (2026-04-30)
5
+ ----------------------------
6
+ * Add `--generate` for Codex and Claude runs to render generated files without launching the underlying tool.
7
+
4
8
  Version 0.99.14 (2026-04-30)
5
9
  ----------------------------
6
10
  * Add `--show` for Codex and Claude runs to print the tool-specific source templates/includes and generated files without launching the underlying tool.
package/README.md CHANGED
@@ -110,6 +110,9 @@ Global flag:
110
110
  `agent-run codex --help` and `agent-run claude --help` still pass `--help`
111
111
  through to the underlying tool.
112
112
 
113
+ For `codex` and `claude`, use `--generate` to generate profile files without
114
+ launching the underlying tool.
115
+
113
116
  Codex defaults to `--danger`, which launches Codex with `-a never -s danger-full-access`,
114
117
  sets `CODEX_HOME` under the private agent directory, starts the Codex process
115
118
  from that private directory, passes the project root with `-C`, and keeps
@@ -155,6 +158,13 @@ Regenerate the generated files for the current repo:
155
158
  agent-run update
156
159
  ```
157
160
 
161
+ You can also generate from a tool command and stop before launch:
162
+
163
+ ```sh
164
+ agent-run codex --generate
165
+ agent-run claude --generate
166
+ ```
167
+
158
168
  This reads `agent-run.jsonc` and Nunjucks templates from the mapped profile
159
169
  directory and rewrites generated files:
160
170
 
package/dist/agent-run.js CHANGED
@@ -203,6 +203,7 @@ function parseRunCommand(command, inputArgs) {
203
203
  create: false,
204
204
  local: false,
205
205
  show: false,
206
+ generate: false,
206
207
  codexSandboxMode: null,
207
208
  codexNetwork: false
208
209
  };
@@ -233,6 +234,10 @@ function parseRunCommand(command, inputArgs) {
233
234
  wrapperArgs.show = true;
234
235
  continue;
235
236
  }
237
+ if (arg === '--generate') {
238
+ wrapperArgs.generate = true;
239
+ continue;
240
+ }
236
241
  if (arg === '--danger') {
237
242
  if (command !== 'codex') {
238
243
  fail('--danger is only supported for agent-run codex');
@@ -407,9 +412,9 @@ function renderHelp(topic) {
407
412
  ' agent-run --init [config-root]',
408
413
  '',
409
414
  'Commands:',
410
- ' codex [--none] [--create] [--local] [--show] [--danger|--sandboxed] [--network] [args...]',
415
+ ' codex [--none] [--create] [--local] [--show] [--generate] [--danger|--sandboxed] [--network] [args...]',
411
416
  ' Run codex with generated private config',
412
- ' claude [--none] [--create] [--local] [--show] [args...]',
417
+ ' claude [--none] [--create] [--local] [--show] [--generate] [args...]',
413
418
  ' Run claude with generated private config',
414
419
  ' check [--all] [path] Validate generated profile output',
415
420
  ' init [path] Create profile source files and render output',
@@ -427,6 +432,7 @@ function renderHelp(topic) {
427
432
  'Run wrapper options:',
428
433
  ' --local Warn about local AI files instead of failing',
429
434
  ' --show Show read/include and generated files without running the tool',
435
+ ' --generate Generate files without running the tool',
430
436
  '',
431
437
  'Codex wrapper options:',
432
438
  ' --danger Run Codex with no sandbox: -a never -s danger-full-access (default)',
@@ -487,9 +493,18 @@ function runTool(parsed) {
487
493
  if (wrapperArgs.show && wrapperArgs.none) {
488
494
  fail('--show cannot be combined with --none');
489
495
  }
496
+ if (wrapperArgs.generate && wrapperArgs.none) {
497
+ fail('--generate cannot be combined with --none');
498
+ }
499
+ if (wrapperArgs.generate && wrapperArgs.show) {
500
+ fail('--generate cannot be combined with --show');
501
+ }
490
502
  if (wrapperArgs.show && isIgnoredDir(projectRoot)) {
491
503
  fail(`cannot show generated ${command} files for ignored project: ${projectRoot}`);
492
504
  }
505
+ if (wrapperArgs.generate && isIgnoredDir(projectRoot)) {
506
+ fail(`cannot generate ${command} files for ignored project: ${projectRoot}`);
507
+ }
493
508
  if (wrapperArgs.none || isIgnoredDir(projectRoot)) {
494
509
  const realBinary = findRealBinary(command);
495
510
  const permissionArgs = getPermissionArgs(command);
@@ -508,6 +523,15 @@ function runTool(parsed) {
508
523
  showToolProfile(command, projectRoot, agentDir);
509
524
  return;
510
525
  }
526
+ if (wrapperArgs.create) {
527
+ runInit({ command: 'init', targetPath: projectRoot });
528
+ }
529
+ ensureRunnableProfile(configRoot, agentDir, profile);
530
+ if (wrapperArgs.generate) {
531
+ const rendered = syncAgentProfile(projectRoot, agentDir);
532
+ printUpdateSummary(rendered);
533
+ return;
534
+ }
511
535
  const localAiFiles = findLocalAiFiles(projectRoot, agentDir);
512
536
  if (localAiFiles.length > 0) {
513
537
  if (!wrapperArgs.local) {
@@ -517,10 +541,6 @@ function runTool(parsed) {
517
541
  }
518
542
  const realBinary = findRealBinary(command);
519
543
  const permissionArgs = getPermissionArgs(command);
520
- if (wrapperArgs.create) {
521
- runInit({ command: 'init', targetPath: projectRoot });
522
- }
523
- ensureRunnableProfile(configRoot, agentDir, profile);
524
544
  syncAgentProfile(projectRoot, agentDir);
525
545
  if (command === 'codex') {
526
546
  runCodex(realBinary, permissionArgs, agentDir, configRoot, args, projectRoot, wrapperArgs);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@technomoron/agent-run",
3
- "version": "0.99.14",
3
+ "version": "0.99.15",
4
4
  "packageManager": "pnpm@10.28.1",
5
5
  "bin": {
6
6
  "agent-run": "dist/agent-run.js"