@technomoron/agent-run 0.99.8 → 0.99.10
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 +9 -0
- package/README.md +3 -2
- package/dist/agent-run.js +28 -8
- package/examples/basic-config/README.md +2 -2
- package/examples/basic-config/agent-config/global/tool-templates/AGENTS.md.njk +1 -0
- package/examples/basic-config/agent-config/global/tool-templates/CLAUDE.md.njk +2 -0
- package/examples/basic-config/agent-config/global/tool-templates/claude-settings.json.njk +1 -0
- package/examples/basic-config/agent-config/global/tool-templates/codex-config.toml.njk +2 -1
- package/examples/basic-config/agent-config/skills/personal-memory.md +1 -0
- package/examples/basic-config/agent-config/starter/basic-project/overrides/claude-settings.json.njk +1 -0
- package/examples/basic-config/agent-config/starter/basic-project/overrides/codex-config.toml.njk +2 -1
- package/package.json +1 -1
package/CHANGES
CHANGED
|
@@ -4,6 +4,15 @@ CHANGES
|
|
|
4
4
|
Unreleased (2026-04-24)
|
|
5
5
|
-----------------------
|
|
6
6
|
|
|
7
|
+
Version 0.99.10 (2026-04-27)
|
|
8
|
+
----------------------------
|
|
9
|
+
* Add `paths.globalMemoryDir` to render context and expose it from default Codex, Claude, AGENTS, and CLAUDE templates.
|
|
10
|
+
|
|
11
|
+
Version 0.99.9 (2026-04-26)
|
|
12
|
+
---------------------------
|
|
13
|
+
* Add `{config-root}/notes/memory` as an optional shared memory directory passed with `--add-dir` to Codex and Claude when it exists.
|
|
14
|
+
* Add a starter `skills/personal-memory.md` file to the packaged config skeleton.
|
|
15
|
+
|
|
7
16
|
Version 0.99.8 (2026-04-26)
|
|
8
17
|
---------------------------
|
|
9
18
|
* Skip stale `codex` or `claude` PATH redirect shims that print `Run agent-run instead` when locating the real underlying tool binary.
|
package/README.md
CHANGED
|
@@ -169,8 +169,9 @@ Per-profile override templates can be placed in:
|
|
|
169
169
|
|
|
170
170
|
A complete starter lives in `examples/basic-config`. It includes a minimal
|
|
171
171
|
project, `.agent-run.env`, a config root with global templates and snippets,
|
|
172
|
-
profile-local templates, skill templates,
|
|
173
|
-
overrides, guardrails, checks, and generated
|
|
172
|
+
profile-local templates, skill templates, a personal memory skill, profile
|
|
173
|
+
skill overrides, tool config overrides, guardrails, checks, and generated
|
|
174
|
+
runtime paths.
|
|
174
175
|
|
|
175
176
|
To copy the packaged starter config root into your default config location:
|
|
176
177
|
|
package/dist/agent-run.js
CHANGED
|
@@ -482,10 +482,10 @@ function runTool(parsed) {
|
|
|
482
482
|
ensureRunnableProfile(configRoot, agentDir, profile);
|
|
483
483
|
syncAgentProfile(projectRoot, agentDir);
|
|
484
484
|
if (command === 'codex') {
|
|
485
|
-
runCodex(realBinary, permissionArgs, agentDir, args, projectRoot, wrapperArgs);
|
|
485
|
+
runCodex(realBinary, permissionArgs, agentDir, configRoot, args, projectRoot, wrapperArgs);
|
|
486
486
|
return;
|
|
487
487
|
}
|
|
488
|
-
runClaude(realBinary, permissionArgs, agentDir, args, projectRoot);
|
|
488
|
+
runClaude(realBinary, permissionArgs, agentDir, configRoot, args, projectRoot);
|
|
489
489
|
}
|
|
490
490
|
function runInit(parsed) {
|
|
491
491
|
const projectRoot = findProjectRoot(parsed.targetPath);
|
|
@@ -972,6 +972,7 @@ function buildRenderContext(projectRoot, agentDir, configRoot, manifest, env) {
|
|
|
972
972
|
reviewDir: resolveRuntimePath(configRoot, manifest.paths.reviewDir, env, baseContext),
|
|
973
973
|
reviewFile: resolveRuntimePath(configRoot, manifest.paths.reviewFile, env, baseContext),
|
|
974
974
|
memoriesDir: resolveRuntimePath(configRoot, manifest.paths.memoriesDir, env, baseContext),
|
|
975
|
+
globalMemoryDir: globalMemoryDir(configRoot),
|
|
975
976
|
codexHomeDir: path.join(resolveRuntimePath(configRoot, manifest.paths.memoriesDir, env, baseContext), 'codex-home'),
|
|
976
977
|
overridesDir: path.join(agentDir, 'overrides'),
|
|
977
978
|
codexSkillsDir: path.join(agentDir, '.agents', 'skills'),
|
|
@@ -1459,7 +1460,7 @@ function countWarnings(findings) {
|
|
|
1459
1460
|
function formatError(error) {
|
|
1460
1461
|
return error instanceof Error ? error.message : String(error);
|
|
1461
1462
|
}
|
|
1462
|
-
function runCodex(realBinary, permissionArgs, agentDir, args, projectRoot, wrapperArgs) {
|
|
1463
|
+
function runCodex(realBinary, permissionArgs, agentDir, configRoot, args, projectRoot, wrapperArgs) {
|
|
1463
1464
|
const agentsPath = path.join(agentDir, 'AGENTS.md');
|
|
1464
1465
|
if (!fs.existsSync(agentsPath)) {
|
|
1465
1466
|
failMissingConfig('codex', agentDir);
|
|
@@ -1482,6 +1483,7 @@ function runCodex(realBinary, permissionArgs, agentDir, args, projectRoot, wrapp
|
|
|
1482
1483
|
`system_prompt_file=${agentsPath}`,
|
|
1483
1484
|
'--config',
|
|
1484
1485
|
'project_doc_max_bytes=65536',
|
|
1486
|
+
...globalMemoryArgs(configRoot),
|
|
1485
1487
|
'-C',
|
|
1486
1488
|
projectRoot,
|
|
1487
1489
|
...(wrapperArgs.codexSandboxMode === 'sandboxed' && wrapperArgs.codexNetwork
|
|
@@ -1497,7 +1499,7 @@ function buildCodexRuntimeArgs(wrapperArgs) {
|
|
|
1497
1499
|
}
|
|
1498
1500
|
return ['-a', 'never', '-s', 'danger-full-access'];
|
|
1499
1501
|
}
|
|
1500
|
-
function runClaude(realBinary, permissionArgs, agentDir, args, projectRoot) {
|
|
1502
|
+
function runClaude(realBinary, permissionArgs, agentDir, configRoot, args, projectRoot) {
|
|
1501
1503
|
const claudePath = path.join(agentDir, 'CLAUDE.md');
|
|
1502
1504
|
if (!fs.existsSync(claudePath)) {
|
|
1503
1505
|
failMissingConfig('claude', agentDir);
|
|
@@ -1519,9 +1521,17 @@ function runClaude(realBinary, permissionArgs, agentDir, args, projectRoot) {
|
|
|
1519
1521
|
projectRoot,
|
|
1520
1522
|
'--add-dir',
|
|
1521
1523
|
agentDir,
|
|
1524
|
+
...globalMemoryArgs(configRoot),
|
|
1522
1525
|
...args
|
|
1523
1526
|
], shouldUseShell(realBinary), env, projectRoot, (code) => postflightProjectCheck(projectRoot, agentDir, code));
|
|
1524
1527
|
}
|
|
1528
|
+
function globalMemoryArgs(configRoot) {
|
|
1529
|
+
const memoryDir = globalMemoryDir(configRoot);
|
|
1530
|
+
return fs.existsSync(memoryDir) ? ['--add-dir', memoryDir] : [];
|
|
1531
|
+
}
|
|
1532
|
+
function globalMemoryDir(configRoot) {
|
|
1533
|
+
return path.join(configRoot, 'notes', 'memory');
|
|
1534
|
+
}
|
|
1525
1535
|
function postflightProjectCheck(projectRoot, agentDir, code) {
|
|
1526
1536
|
const localAiFiles = findLocalAiFiles(projectRoot, agentDir);
|
|
1527
1537
|
if (localAiFiles.length === 0) {
|
|
@@ -2210,6 +2220,12 @@ function defaultToolInstructionsTemplate(isClaude) {
|
|
|
2210
2220
|
'{{ paths.memoriesDir }}',
|
|
2211
2221
|
'```',
|
|
2212
2222
|
'',
|
|
2223
|
+
'Global memory directory:',
|
|
2224
|
+
'',
|
|
2225
|
+
'```text',
|
|
2226
|
+
'{{ paths.globalMemoryDir }}',
|
|
2227
|
+
'```',
|
|
2228
|
+
'',
|
|
2213
2229
|
'Changes file:',
|
|
2214
2230
|
'',
|
|
2215
2231
|
'```text',
|
|
@@ -2245,7 +2261,8 @@ function defaultCodexConfigTemplate() {
|
|
|
2245
2261
|
'[sandbox_workspace_write]',
|
|
2246
2262
|
'writable_roots = [',
|
|
2247
2263
|
' "{{ projectRoot }}",',
|
|
2248
|
-
' "{{ agentDir }}"',
|
|
2264
|
+
' "{{ agentDir }}",',
|
|
2265
|
+
' "{{ paths.globalMemoryDir }}"',
|
|
2249
2266
|
']',
|
|
2250
2267
|
'network_access = false',
|
|
2251
2268
|
''
|
|
@@ -2256,7 +2273,8 @@ function defaultClaudeSettingsTemplate() {
|
|
|
2256
2273
|
'{',
|
|
2257
2274
|
' "env": {',
|
|
2258
2275
|
' "AGENT_DIR": "{{ agentDir }}",',
|
|
2259
|
-
' "AGENT_RUN_PROJECT_ROOT": "{{ projectRoot }}"',
|
|
2276
|
+
' "AGENT_RUN_PROJECT_ROOT": "{{ projectRoot }}",',
|
|
2277
|
+
' "AGENT_GLOBAL_MEMORY_DIR": "{{ paths.globalMemoryDir }}"',
|
|
2260
2278
|
' }',
|
|
2261
2279
|
'}',
|
|
2262
2280
|
''
|
|
@@ -2272,7 +2290,8 @@ function defaultCodexConfigContent(context) {
|
|
|
2272
2290
|
'[sandbox_workspace_write]',
|
|
2273
2291
|
'writable_roots = [',
|
|
2274
2292
|
` ${jsonString(context.projectRoot)},`,
|
|
2275
|
-
` ${jsonString(context.agentDir)}
|
|
2293
|
+
` ${jsonString(context.agentDir)},`,
|
|
2294
|
+
` ${jsonString(context.paths.globalMemoryDir)}`,
|
|
2276
2295
|
']',
|
|
2277
2296
|
'network_access = false',
|
|
2278
2297
|
''
|
|
@@ -2282,7 +2301,8 @@ function defaultClaudeSettingsContent(context) {
|
|
|
2282
2301
|
return `${JSON.stringify({
|
|
2283
2302
|
env: {
|
|
2284
2303
|
AGENT_DIR: context.agentDir,
|
|
2285
|
-
AGENT_RUN_PROJECT_ROOT: context.projectRoot
|
|
2304
|
+
AGENT_RUN_PROJECT_ROOT: context.projectRoot,
|
|
2305
|
+
AGENT_GLOBAL_MEMORY_DIR: context.paths.globalMemoryDir
|
|
2286
2306
|
}
|
|
2287
2307
|
}, null, 2)}\n`;
|
|
2288
2308
|
}
|
|
@@ -8,8 +8,8 @@ It contains two pieces:
|
|
|
8
8
|
- `project/`: a minimal project with `.agent-run.env` pointing at the bundled
|
|
9
9
|
config root.
|
|
10
10
|
- `agent-config/`: a complete config root with global templates, snippets,
|
|
11
|
-
skill templates, a profile manifest, profile-local
|
|
12
|
-
overrides.
|
|
11
|
+
skill templates, a personal memory skill, a profile manifest, profile-local
|
|
12
|
+
instructions, and profile overrides.
|
|
13
13
|
|
|
14
14
|
Try it from this repository after building:
|
|
15
15
|
|
|
@@ -12,6 +12,7 @@ Do not edit this generated file. Edit `agent-run.jsonc` and `local.md.njk`.
|
|
|
12
12
|
- agentDir: `{{ agentDir }}`
|
|
13
13
|
- reviewFile: `{{ paths.reviewFile }}`
|
|
14
14
|
- memoriesDir: `{{ paths.memoriesDir }}`
|
|
15
|
+
- globalMemoryDir: `{{ paths.globalMemoryDir }}`
|
|
15
16
|
|
|
16
17
|
## Skills
|
|
17
18
|
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Read `./notes/memory/README.md` first. Follow its file index and read only the files relevant to the current task. Do not edit memory files unless the user explicitly asks.
|