@s_s/agent-kit 1.1.0 → 1.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/README.md +56 -8
- package/build/create-kit.js +4 -1
- package/build/create-kit.js.map +1 -1
- package/build/hooks.js +11 -17
- package/build/hooks.js.map +1 -1
- package/build/index.d.ts +3 -2
- package/build/index.js +4 -2
- package/build/index.js.map +1 -1
- package/build/paths.d.ts +31 -0
- package/build/paths.js +119 -0
- package/build/paths.js.map +1 -0
- package/build/prompt.d.ts +4 -0
- package/build/prompt.js +10 -19
- package/build/prompt.js.map +1 -1
- package/build/types.d.ts +26 -0
- package/build/types.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -93,14 +93,15 @@ createKit(name: string, options?: KitOptions): Kit
|
|
|
93
93
|
|
|
94
94
|
返回的 Kit 对象包含以下方法:
|
|
95
95
|
|
|
96
|
-
| 方法 | 说明
|
|
97
|
-
| --------------------------------------- |
|
|
98
|
-
| `injectPrompt(agent, prompt, options?)` | 注入 prompt 到 agent 配置文件
|
|
99
|
-
| `hasPromptInjected(agent, options?)` | 检查 prompt 是否已注入
|
|
100
|
-
| `installHooks(agent, hooks)` | 安装 hooks(传入 defineHooks 声明)
|
|
101
|
-
| `uninstallHooks(agent)` | 卸载 hooks
|
|
102
|
-
| `hasHooksInstalled(agent)` | 检查 hooks 是否已安装
|
|
103
|
-
| `getDataDir(options?)` | 获取跨平台数据目录路径
|
|
96
|
+
| 方法 | 说明 |
|
|
97
|
+
| --------------------------------------- | --------------------------------------------------------- |
|
|
98
|
+
| `injectPrompt(agent, prompt, options?)` | 注入 prompt 到 agent 配置文件 |
|
|
99
|
+
| `hasPromptInjected(agent, options?)` | 检查 prompt 是否已注入 |
|
|
100
|
+
| `installHooks(agent, hooks)` | 安装 hooks(传入 defineHooks 声明) |
|
|
101
|
+
| `uninstallHooks(agent)` | 卸载 hooks |
|
|
102
|
+
| `hasHooksInstalled(agent)` | 检查 hooks 是否已安装 |
|
|
103
|
+
| `getDataDir(options?)` | 获取跨平台数据目录路径 |
|
|
104
|
+
| `resolvePaths(agent, options?)` | 解析 agent 相关路径(配置文件、hook 目录、settings 文件) |
|
|
104
105
|
|
|
105
106
|
### Kit 方法详情
|
|
106
107
|
|
|
@@ -166,6 +167,45 @@ getDataDir(options?: ScopeOptions): string
|
|
|
166
167
|
|
|
167
168
|
全局路径可通过环境变量覆盖(默认变量名:`{NAME}_DATA_DIR`)。
|
|
168
169
|
|
|
170
|
+
#### `kit.resolvePaths(agent, options?)`
|
|
171
|
+
|
|
172
|
+
解析指定 agent 的所有相关路径。自动使用 kit 的 `name` 作为 toolName,使用侧无需关心。
|
|
173
|
+
|
|
174
|
+
```typescript
|
|
175
|
+
resolvePaths(agent: AgentType, options?: ScopeOptions): AgentPaths
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
返回值:
|
|
179
|
+
|
|
180
|
+
```typescript
|
|
181
|
+
interface AgentPaths {
|
|
182
|
+
configFile: string; // agent 配置文件路径(始终返回)
|
|
183
|
+
hookDir?: string; // hook 目录路径(始终返回,因为 kit 已绑定 toolName)
|
|
184
|
+
settingsFile?: string; // settings.json 路径(仅 claude-code / codex)
|
|
185
|
+
}
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
示例:
|
|
189
|
+
|
|
190
|
+
```typescript
|
|
191
|
+
const kit = createKit('mnemo');
|
|
192
|
+
|
|
193
|
+
// Global scope
|
|
194
|
+
const paths = kit.resolvePaths('claude-code');
|
|
195
|
+
// → {
|
|
196
|
+
// configFile: '~/.claude/CLAUDE.md',
|
|
197
|
+
// hookDir: '~/.claude/hooks/mnemo',
|
|
198
|
+
// settingsFile: '~/.claude/settings.json',
|
|
199
|
+
// }
|
|
200
|
+
|
|
201
|
+
// Project scope
|
|
202
|
+
const paths = kit.resolvePaths('opencode', { scope: 'project', projectRoot: '/my/project' });
|
|
203
|
+
// → {
|
|
204
|
+
// configFile: '/my/project/AGENTS.md',
|
|
205
|
+
// hookDir: '~/.config/opencode/plugins',
|
|
206
|
+
// }
|
|
207
|
+
```
|
|
208
|
+
|
|
169
209
|
### Hook 系统
|
|
170
210
|
|
|
171
211
|
Hook 系统分为两个阶段:**声明**和**安装**。
|
|
@@ -273,6 +313,14 @@ interface Kit {
|
|
|
273
313
|
uninstallHooks(agent: AgentType): Promise<{ success: boolean; removed: string[]; error?: string }>;
|
|
274
314
|
hasHooksInstalled(agent: AgentType): Promise<boolean>;
|
|
275
315
|
getDataDir(options?: ScopeOptions): string;
|
|
316
|
+
resolvePaths(agent: AgentType, options?: ScopeOptions): AgentPaths;
|
|
317
|
+
}
|
|
318
|
+
|
|
319
|
+
// Agent 路径
|
|
320
|
+
interface AgentPaths {
|
|
321
|
+
configFile: string;
|
|
322
|
+
hookDir?: string;
|
|
323
|
+
settingsFile?: string;
|
|
276
324
|
}
|
|
277
325
|
|
|
278
326
|
// Hook 定义
|
package/build/create-kit.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { injectPrompt, hasPromptInjected } from './prompt.js';
|
|
2
2
|
import { installHooks, uninstallHooks, hasHooksInstalled } from './hooks.js';
|
|
3
|
-
import { getDataDir } from './
|
|
3
|
+
import { getDataDir, resolveAgentPaths } from './paths.js';
|
|
4
4
|
/**
|
|
5
5
|
* Create a kit instance bound to the given tool name.
|
|
6
6
|
*
|
|
@@ -49,6 +49,9 @@ export function createKit(name, options) {
|
|
|
49
49
|
getDataDir(scopeOptions) {
|
|
50
50
|
return getDataDir(config, scopeOptions);
|
|
51
51
|
},
|
|
52
|
+
resolvePaths(agent, scopeOptions) {
|
|
53
|
+
return resolveAgentPaths(agent, name, scopeOptions);
|
|
54
|
+
},
|
|
52
55
|
};
|
|
53
56
|
}
|
|
54
57
|
//# sourceMappingURL=create-kit.js.map
|
package/build/create-kit.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-kit.js","sourceRoot":"","sources":["../src/create-kit.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAC7E,OAAO,EAAE,UAAU,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"create-kit.js","sourceRoot":"","sources":["../src/create-kit.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAC7E,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAE3D;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,SAAS,CAAC,IAAY,EAAE,OAAoB;IACxD,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;IACxE,CAAC;IAED,MAAM,MAAM,GAAsB;QAC9B,IAAI;QACJ,IAAI,EAAE,OAAO,EAAE,IAAI;QACnB,WAAW,EAAE,OAAO,EAAE,WAAW;KACpC,CAAC;IAEF,OAAO;QACH,IAAI,IAAI;YACJ,OAAO,IAAI,CAAC;QAChB,CAAC;QAED,YAAY,CAAC,KAAgB,EAAE,MAAc,EAAE,YAA2B;YACtE,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC;gBAC5B,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;YAC7E,CAAC;YACD,OAAO,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC;QAC3D,CAAC;QAED,iBAAiB,CAAC,KAAgB,EAAE,YAA2B;YAC3D,OAAO,iBAAiB,CAAC,IAAI,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC;QACxD,CAAC;QAED,YAAY,CAAC,KAAgB,EAAE,KAA0B;YACrD,OAAO,YAAY,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QAC5C,CAAC;QAED,cAAc,CAAC,KAAgB;YAC3B,OAAO,cAAc,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACvC,CAAC;QAED,iBAAiB,CAAC,KAAgB;YAC9B,OAAO,iBAAiB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAC1C,CAAC;QAED,UAAU,CAAC,YAA2B;YAClC,OAAO,UAAU,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;QAC5C,CAAC;QAED,YAAY,CAAC,KAAgB,EAAE,YAA2B;YACtD,OAAO,iBAAiB,CAAC,KAAK,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC;QACxD,CAAC;KACJ,CAAC;AACN,CAAC"}
|
package/build/hooks.js
CHANGED
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import fs from 'node:fs/promises';
|
|
2
2
|
import path from 'node:path';
|
|
3
|
-
import os from 'node:os';
|
|
4
3
|
import { execFile } from 'node:child_process';
|
|
5
4
|
import { promisify } from 'node:util';
|
|
6
|
-
import {
|
|
5
|
+
import { resolveAgentPaths } from './paths.js';
|
|
7
6
|
const execFileAsync = promisify(execFile);
|
|
8
7
|
// ---------------------------------------------------------------------------
|
|
9
8
|
// installHooks — write hook files to disk
|
|
@@ -21,9 +20,8 @@ const execFileAsync = promisify(execFile);
|
|
|
21
20
|
* @internal — called by the Kit object returned from createKit().
|
|
22
21
|
*/
|
|
23
22
|
export async function installHooks(name, agent, hookSets) {
|
|
24
|
-
const
|
|
25
|
-
const
|
|
26
|
-
const hookDir = entry.getHookDir(home, name);
|
|
23
|
+
const paths = resolveAgentPaths(agent, name);
|
|
24
|
+
const hookDir = paths.hookDir;
|
|
27
25
|
const result = {
|
|
28
26
|
success: false,
|
|
29
27
|
hookDir,
|
|
@@ -74,11 +72,10 @@ export async function installHooks(name, agent, hookSets) {
|
|
|
74
72
|
result.filesWritten.push(filePath);
|
|
75
73
|
}
|
|
76
74
|
// Merge settings.json for Claude Code / Codex
|
|
77
|
-
if (
|
|
78
|
-
const settingsPath = entry.getSettingsPath(home);
|
|
75
|
+
if (paths.settingsFile) {
|
|
79
76
|
const shellFiles = Object.keys(files).filter((f) => f.endsWith('.sh'));
|
|
80
77
|
if (shellFiles.length > 0) {
|
|
81
|
-
await mergeHookSettings(
|
|
78
|
+
await mergeHookSettings(paths.settingsFile, hookDir, shellFiles, allDefs, name);
|
|
82
79
|
result.settingsUpdated = true;
|
|
83
80
|
}
|
|
84
81
|
}
|
|
@@ -111,9 +108,8 @@ export async function installHooks(name, agent, hookSets) {
|
|
|
111
108
|
* @internal — called by the Kit object returned from createKit().
|
|
112
109
|
*/
|
|
113
110
|
export async function uninstallHooks(name, agent) {
|
|
114
|
-
const
|
|
115
|
-
const
|
|
116
|
-
const hookDir = entry.getHookDir(home, name);
|
|
111
|
+
const paths = resolveAgentPaths(agent, name);
|
|
112
|
+
const hookDir = paths.hookDir;
|
|
117
113
|
const removed = [];
|
|
118
114
|
try {
|
|
119
115
|
// Remove hook directory contents
|
|
@@ -130,9 +126,8 @@ export async function uninstallHooks(name, agent) {
|
|
|
130
126
|
// Directory may not exist — that's fine
|
|
131
127
|
}
|
|
132
128
|
// Clean settings.json for Claude Code / Codex
|
|
133
|
-
if (
|
|
134
|
-
|
|
135
|
-
await cleanHookSettings(settingsPath, name);
|
|
129
|
+
if (paths.settingsFile) {
|
|
130
|
+
await cleanHookSettings(paths.settingsFile, name);
|
|
136
131
|
}
|
|
137
132
|
// Deactivate for OpenClaw
|
|
138
133
|
if (agent === 'openclaw') {
|
|
@@ -158,9 +153,8 @@ export async function uninstallHooks(name, agent) {
|
|
|
158
153
|
* @internal — called by the Kit object returned from createKit().
|
|
159
154
|
*/
|
|
160
155
|
export async function hasHooksInstalled(name, agent) {
|
|
161
|
-
const
|
|
162
|
-
const
|
|
163
|
-
const hookDir = entry.getHookDir(home, name);
|
|
156
|
+
const paths = resolveAgentPaths(agent, name);
|
|
157
|
+
const hookDir = paths.hookDir;
|
|
164
158
|
try {
|
|
165
159
|
const files = await fs.readdir(hookDir);
|
|
166
160
|
return files.length > 0;
|
package/build/hooks.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks.js","sourceRoot":"","sources":["../src/hooks.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"hooks.js","sourceRoot":"","sources":["../src/hooks.ts"],"names":[],"mappings":"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"}
|
package/build/index.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
export { createKit } from './create-kit.js';
|
|
2
|
+
export { resolveConfigPath } from './prompt.js';
|
|
2
3
|
export { defineHooks, getValidEvents } from './define-hooks.js';
|
|
3
|
-
export type { AgentType, StorageScope, ScopeOptions, KitOptions, Kit, HookInstallResult, HookDefinition, HookSet, ClaudeCodeEvent, OpenCodeEvent, OpenClawPluginEvent, OpenClawInternalEvent, OpenClawEvent, AgentEventMap, } from './types.js';
|
|
4
|
+
export type { AgentType, StorageScope, ScopeOptions, KitOptions, Kit, HookInstallResult, HookDefinition, HookSet, ClaudeCodeEvent, OpenCodeEvent, OpenClawPluginEvent, OpenClawInternalEvent, OpenClawEvent, AgentEventMap, AgentPaths, } from './types.js';
|
|
4
5
|
export { AGENT_TYPES, CLIENT_NAME_MAP } from './types.js';
|
|
5
|
-
export { detectProjectRoot } from './
|
|
6
|
+
export { detectProjectRoot } from './paths.js';
|
|
6
7
|
export { detectAgent, detectAgentFromClient } from './detect.js';
|
package/build/index.js
CHANGED
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
// Core factory
|
|
2
2
|
export { createKit } from './create-kit.js';
|
|
3
|
+
// Prompt utilities
|
|
4
|
+
export { resolveConfigPath } from './prompt.js';
|
|
3
5
|
// Hook definition
|
|
4
6
|
export { defineHooks, getValidEvents } from './define-hooks.js';
|
|
5
7
|
export { AGENT_TYPES, CLIENT_NAME_MAP } from './types.js';
|
|
6
|
-
//
|
|
7
|
-
export { detectProjectRoot } from './
|
|
8
|
+
// Paths (only detectProjectRoot is standalone; getDataDir & resolvePaths are on Kit)
|
|
9
|
+
export { detectProjectRoot } from './paths.js';
|
|
8
10
|
// Detection
|
|
9
11
|
export { detectAgent, detectAgentFromClient } from './detect.js';
|
|
10
12
|
//# sourceMappingURL=index.js.map
|
package/build/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,eAAe;AACf,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,kBAAkB;AAClB,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,eAAe;AACf,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,mBAAmB;AACnB,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAEhD,kBAAkB;AAClB,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAoBhE,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAE1D,qFAAqF;AACrF,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAE/C,YAAY;AACZ,OAAO,EAAE,WAAW,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC"}
|
package/build/paths.d.ts
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import type { AgentType, AgentPaths, ResolvedKitConfig, ScopeOptions } from './types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Get platform-appropriate data directory path.
|
|
4
|
+
*
|
|
5
|
+
* - global: follows platform conventions (macOS ~/Library/Application Support, Linux XDG, Windows APPDATA)
|
|
6
|
+
* - project: `<projectRoot>/.<name>` (or custom dir name)
|
|
7
|
+
*
|
|
8
|
+
* @internal — called by the Kit object returned from createKit().
|
|
9
|
+
*/
|
|
10
|
+
export declare function getDataDir(config: ResolvedKitConfig, options?: ScopeOptions): string;
|
|
11
|
+
/**
|
|
12
|
+
* Detect project root directory.
|
|
13
|
+
*
|
|
14
|
+
* Resolution order: git root > project marker files (.git, package.json, etc.) > cwd fallback.
|
|
15
|
+
* This is an independent function — does not require createKit().
|
|
16
|
+
*/
|
|
17
|
+
export declare function detectProjectRoot(cwd?: string): Promise<string>;
|
|
18
|
+
/**
|
|
19
|
+
* Resolve all relevant paths for an agent at a given scope.
|
|
20
|
+
*
|
|
21
|
+
* Central path resolution for agent config files, hook directories, and
|
|
22
|
+
* settings files. All other modules should use this function instead of
|
|
23
|
+
* reading from AGENT_REGISTRY directly.
|
|
24
|
+
*
|
|
25
|
+
* @param agent - Target agent type.
|
|
26
|
+
* @param toolName - Tool/kit name. When provided, hookDir is included in the result.
|
|
27
|
+
* @param options - Scope options (global/project).
|
|
28
|
+
*
|
|
29
|
+
* @internal — used by prompt.ts, hooks.ts, and create-kit.ts.
|
|
30
|
+
*/
|
|
31
|
+
export declare function resolveAgentPaths(agent: AgentType, toolName?: string, options?: ScopeOptions): AgentPaths;
|
package/build/paths.js
ADDED
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
import path from 'node:path';
|
|
2
|
+
import os from 'node:os';
|
|
3
|
+
import fs from 'node:fs/promises';
|
|
4
|
+
import { execFile } from 'node:child_process';
|
|
5
|
+
import { promisify } from 'node:util';
|
|
6
|
+
import { AGENT_REGISTRY } from './types.js';
|
|
7
|
+
const execFileAsync = promisify(execFile);
|
|
8
|
+
const PROJECT_ROOT_MARKERS = ['.git', 'package.json', 'pyproject.toml', 'Cargo.toml', 'go.mod'];
|
|
9
|
+
/**
|
|
10
|
+
* Get platform-appropriate data directory path.
|
|
11
|
+
*
|
|
12
|
+
* - global: follows platform conventions (macOS ~/Library/Application Support, Linux XDG, Windows APPDATA)
|
|
13
|
+
* - project: `<projectRoot>/.<name>` (or custom dir name)
|
|
14
|
+
*
|
|
15
|
+
* @internal — called by the Kit object returned from createKit().
|
|
16
|
+
*/
|
|
17
|
+
export function getDataDir(config, options) {
|
|
18
|
+
const scope = options?.scope ?? 'global';
|
|
19
|
+
if (scope === 'project') {
|
|
20
|
+
if (!options?.projectRoot) {
|
|
21
|
+
throw new Error('getDataDir: projectRoot is required when scope is "project".');
|
|
22
|
+
}
|
|
23
|
+
const dirName = config.dirs?.project ?? `.${config.name}`;
|
|
24
|
+
return path.join(options.projectRoot, dirName);
|
|
25
|
+
}
|
|
26
|
+
// Global scope
|
|
27
|
+
const envVar = config.envOverride ?? `${config.name.toUpperCase().replace(/-/g, '_')}_DATA_DIR`;
|
|
28
|
+
const envDir = process.env[envVar];
|
|
29
|
+
if (envDir)
|
|
30
|
+
return envDir;
|
|
31
|
+
const dirName = config.dirs?.global ?? config.name;
|
|
32
|
+
const home = os.homedir();
|
|
33
|
+
const platform = process.platform;
|
|
34
|
+
switch (platform) {
|
|
35
|
+
case 'darwin':
|
|
36
|
+
return path.join(home, 'Library', 'Application Support', dirName);
|
|
37
|
+
case 'win32':
|
|
38
|
+
return path.join(process.env.APPDATA || path.join(home, 'AppData', 'Roaming'), dirName);
|
|
39
|
+
default:
|
|
40
|
+
return path.join(process.env.XDG_DATA_HOME || path.join(home, '.local', 'share'), dirName);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Detect project root directory.
|
|
45
|
+
*
|
|
46
|
+
* Resolution order: git root > project marker files (.git, package.json, etc.) > cwd fallback.
|
|
47
|
+
* This is an independent function — does not require createKit().
|
|
48
|
+
*/
|
|
49
|
+
export async function detectProjectRoot(cwd) {
|
|
50
|
+
const startDir = cwd ?? process.cwd();
|
|
51
|
+
// Try git root first
|
|
52
|
+
try {
|
|
53
|
+
const { stdout } = await execFileAsync('git', ['rev-parse', '--show-toplevel'], { cwd: startDir });
|
|
54
|
+
const gitRoot = stdout.trim();
|
|
55
|
+
if (gitRoot)
|
|
56
|
+
return gitRoot;
|
|
57
|
+
}
|
|
58
|
+
catch {
|
|
59
|
+
// Not a git repo or git not available
|
|
60
|
+
}
|
|
61
|
+
// Walk up looking for project markers
|
|
62
|
+
let current = path.resolve(startDir);
|
|
63
|
+
while (true) {
|
|
64
|
+
for (const marker of PROJECT_ROOT_MARKERS) {
|
|
65
|
+
try {
|
|
66
|
+
await fs.access(path.join(current, marker));
|
|
67
|
+
return current;
|
|
68
|
+
}
|
|
69
|
+
catch {
|
|
70
|
+
continue;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
const parent = path.dirname(current);
|
|
74
|
+
if (parent === current)
|
|
75
|
+
break;
|
|
76
|
+
current = parent;
|
|
77
|
+
}
|
|
78
|
+
return path.resolve(startDir);
|
|
79
|
+
}
|
|
80
|
+
// ---------------------------------------------------------------------------
|
|
81
|
+
// Agent path resolution
|
|
82
|
+
// ---------------------------------------------------------------------------
|
|
83
|
+
/**
|
|
84
|
+
* Resolve all relevant paths for an agent at a given scope.
|
|
85
|
+
*
|
|
86
|
+
* Central path resolution for agent config files, hook directories, and
|
|
87
|
+
* settings files. All other modules should use this function instead of
|
|
88
|
+
* reading from AGENT_REGISTRY directly.
|
|
89
|
+
*
|
|
90
|
+
* @param agent - Target agent type.
|
|
91
|
+
* @param toolName - Tool/kit name. When provided, hookDir is included in the result.
|
|
92
|
+
* @param options - Scope options (global/project).
|
|
93
|
+
*
|
|
94
|
+
* @internal — used by prompt.ts, hooks.ts, and create-kit.ts.
|
|
95
|
+
*/
|
|
96
|
+
export function resolveAgentPaths(agent, toolName, options) {
|
|
97
|
+
const entry = AGENT_REGISTRY[agent];
|
|
98
|
+
const scope = options?.scope ?? 'global';
|
|
99
|
+
const home = os.homedir();
|
|
100
|
+
let configFile;
|
|
101
|
+
if (scope === 'project') {
|
|
102
|
+
if (!options?.projectRoot) {
|
|
103
|
+
throw new Error('resolveAgentPaths: projectRoot is required when scope is "project".');
|
|
104
|
+
}
|
|
105
|
+
configFile = entry.projectConfigPath(options.projectRoot);
|
|
106
|
+
}
|
|
107
|
+
else {
|
|
108
|
+
configFile = entry.globalConfigPath(home);
|
|
109
|
+
}
|
|
110
|
+
const result = { configFile };
|
|
111
|
+
if (toolName) {
|
|
112
|
+
result.hookDir = entry.getHookDir(home, toolName);
|
|
113
|
+
}
|
|
114
|
+
if (entry.getSettingsPath) {
|
|
115
|
+
result.settingsFile = entry.getSettingsPath(home);
|
|
116
|
+
}
|
|
117
|
+
return result;
|
|
118
|
+
}
|
|
119
|
+
//# sourceMappingURL=paths.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"paths.js","sourceRoot":"","sources":["../src/paths.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAG5C,MAAM,aAAa,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;AAE1C,MAAM,oBAAoB,GAAG,CAAC,MAAM,EAAE,cAAc,EAAE,gBAAgB,EAAE,YAAY,EAAE,QAAQ,CAAC,CAAC;AAEhG;;;;;;;GAOG;AACH,MAAM,UAAU,UAAU,CAAC,MAAyB,EAAE,OAAsB;IACxE,MAAM,KAAK,GAAG,OAAO,EAAE,KAAK,IAAI,QAAQ,CAAC;IAEzC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACtB,IAAI,CAAC,OAAO,EAAE,WAAW,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,8DAA8D,CAAC,CAAC;QACpF,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,EAAE,OAAO,IAAI,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;QAC1D,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IACnD,CAAC;IAED,eAAe;IACf,MAAM,MAAM,GAAG,MAAM,CAAC,WAAW,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,WAAW,CAAC;IAChG,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACnC,IAAI,MAAM;QAAE,OAAO,MAAM,CAAC;IAE1B,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,EAAE,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC;IACnD,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC;IAC1B,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;IAElC,QAAQ,QAAQ,EAAE,CAAC;QACf,KAAK,QAAQ;YACT,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,qBAAqB,EAAE,OAAO,CAAC,CAAC;QACtE,KAAK,OAAO;YACR,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,CAAC,EAAE,OAAO,CAAC,CAAC;QAC5F;YACI,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,CAAC;IACnG,CAAC;AACL,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,GAAY;IAChD,MAAM,QAAQ,GAAG,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IAEtC,qBAAqB;IACrB,IAAI,CAAC;QACD,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,aAAa,CAAC,KAAK,EAAE,CAAC,WAAW,EAAE,iBAAiB,CAAC,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC,CAAC;QACnG,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;QAC9B,IAAI,OAAO;YAAE,OAAO,OAAO,CAAC;IAChC,CAAC;IAAC,MAAM,CAAC;QACL,sCAAsC;IAC1C,CAAC;IAED,sCAAsC;IACtC,IAAI,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACrC,OAAO,IAAI,EAAE,CAAC;QACV,KAAK,MAAM,MAAM,IAAI,oBAAoB,EAAE,CAAC;YACxC,IAAI,CAAC;gBACD,MAAM,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;gBAC5C,OAAO,OAAO,CAAC;YACnB,CAAC;YAAC,MAAM,CAAC;gBACL,SAAS;YACb,CAAC;QACL,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACrC,IAAI,MAAM,KAAK,OAAO;YAAE,MAAM;QAC9B,OAAO,GAAG,MAAM,CAAC;IACrB,CAAC;IAED,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;AAClC,CAAC;AAED,8EAA8E;AAC9E,wBAAwB;AACxB,8EAA8E;AAE9E;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAAgB,EAAE,QAAiB,EAAE,OAAsB;IACzF,MAAM,KAAK,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;IACpC,MAAM,KAAK,GAAG,OAAO,EAAE,KAAK,IAAI,QAAQ,CAAC;IACzC,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC;IAE1B,IAAI,UAAkB,CAAC;IACvB,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACtB,IAAI,CAAC,OAAO,EAAE,WAAW,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,qEAAqE,CAAC,CAAC;QAC3F,CAAC;QACD,UAAU,GAAG,KAAK,CAAC,iBAAiB,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IAC9D,CAAC;SAAM,CAAC;QACJ,UAAU,GAAG,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;IAC9C,CAAC;IAED,MAAM,MAAM,GAAe,EAAE,UAAU,EAAE,CAAC;IAE1C,IAAI,QAAQ,EAAE,CAAC;QACX,MAAM,CAAC,OAAO,GAAG,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IACtD,CAAC;IAED,IAAI,KAAK,CAAC,eAAe,EAAE,CAAC;QACxB,MAAM,CAAC,YAAY,GAAG,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;IACtD,CAAC;IAED,OAAO,MAAM,CAAC;AAClB,CAAC"}
|
package/build/prompt.d.ts
CHANGED
|
@@ -19,3 +19,7 @@ export declare function hasPromptInjected(name: string, agent: AgentType, option
|
|
|
19
19
|
* @internal — exported for testing.
|
|
20
20
|
*/
|
|
21
21
|
export declare function applyPromptInjection(existingContent: string, name: string, promptContent: string): string;
|
|
22
|
+
/**
|
|
23
|
+
* Resolve the target config file path for an agent + scope.
|
|
24
|
+
*/
|
|
25
|
+
export declare function resolveConfigPath(agent: AgentType, options?: ScopeOptions): string;
|
package/build/prompt.js
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import fs from 'node:fs/promises';
|
|
2
|
-
import os from 'node:os';
|
|
3
2
|
import path from 'node:path';
|
|
4
|
-
import {
|
|
3
|
+
import { resolveAgentPaths } from './paths.js';
|
|
5
4
|
/**
|
|
6
5
|
* Inject or update prompt into the agent's config file.
|
|
7
6
|
*
|
|
@@ -11,19 +10,19 @@ import { AGENT_REGISTRY } from './types.js';
|
|
|
11
10
|
* @internal — called by the Kit object returned from createKit().
|
|
12
11
|
*/
|
|
13
12
|
export async function injectPrompt(name, prompt, agent, options) {
|
|
14
|
-
const
|
|
13
|
+
const { configFile } = resolveAgentPaths(agent, undefined, options);
|
|
15
14
|
// Read existing content
|
|
16
15
|
let existingContent = '';
|
|
17
16
|
try {
|
|
18
|
-
existingContent = await fs.readFile(
|
|
17
|
+
existingContent = await fs.readFile(configFile, 'utf-8');
|
|
19
18
|
}
|
|
20
19
|
catch {
|
|
21
20
|
// File doesn't exist yet
|
|
22
21
|
}
|
|
23
22
|
const updated = applyPromptInjection(existingContent, name, prompt);
|
|
24
23
|
// Ensure parent directory exists
|
|
25
|
-
await fs.mkdir(path.dirname(
|
|
26
|
-
await fs.writeFile(
|
|
24
|
+
await fs.mkdir(path.dirname(configFile), { recursive: true });
|
|
25
|
+
await fs.writeFile(configFile, updated, 'utf-8');
|
|
27
26
|
}
|
|
28
27
|
/**
|
|
29
28
|
* Check if prompt has already been injected into the agent's config file.
|
|
@@ -31,9 +30,9 @@ export async function injectPrompt(name, prompt, agent, options) {
|
|
|
31
30
|
* @internal — called by the Kit object returned from createKit().
|
|
32
31
|
*/
|
|
33
32
|
export async function hasPromptInjected(name, agent, options) {
|
|
34
|
-
const
|
|
33
|
+
const { configFile } = resolveAgentPaths(agent, undefined, options);
|
|
35
34
|
try {
|
|
36
|
-
const content = await fs.readFile(
|
|
35
|
+
const content = await fs.readFile(configFile, 'utf-8');
|
|
37
36
|
return content.includes(markerStart(name));
|
|
38
37
|
}
|
|
39
38
|
catch {
|
|
@@ -72,16 +71,8 @@ export function applyPromptInjection(existingContent, name, promptContent) {
|
|
|
72
71
|
/**
|
|
73
72
|
* Resolve the target config file path for an agent + scope.
|
|
74
73
|
*/
|
|
75
|
-
function resolveConfigPath(agent, options) {
|
|
76
|
-
const
|
|
77
|
-
|
|
78
|
-
const home = os.homedir();
|
|
79
|
-
if (scope === 'project') {
|
|
80
|
-
if (!options?.projectRoot) {
|
|
81
|
-
throw new Error('injectPrompt: projectRoot is required when scope is "project".');
|
|
82
|
-
}
|
|
83
|
-
return entry.projectConfigPath(options.projectRoot);
|
|
84
|
-
}
|
|
85
|
-
return entry.globalConfigPath(home);
|
|
74
|
+
export function resolveConfigPath(agent, options) {
|
|
75
|
+
const { configFile } = resolveAgentPaths(agent, undefined, options);
|
|
76
|
+
return configFile;
|
|
86
77
|
}
|
|
87
78
|
//# sourceMappingURL=prompt.js.map
|
package/build/prompt.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompt.js","sourceRoot":"","sources":["../src/prompt.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,
|
|
1
|
+
{"version":3,"file":"prompt.js","sourceRoot":"","sources":["../src/prompt.ts"],"names":[],"mappings":"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"}
|
package/build/types.d.ts
CHANGED
|
@@ -57,6 +57,8 @@ export interface Kit {
|
|
|
57
57
|
hasHooksInstalled(agent: AgentType): Promise<boolean>;
|
|
58
58
|
/** Get platform-appropriate data directory path. */
|
|
59
59
|
getDataDir(options?: ScopeOptions): string;
|
|
60
|
+
/** Resolve all relevant paths (config file, hook dir, settings file) for an agent. */
|
|
61
|
+
resolvePaths(agent: AgentType, options?: ScopeOptions): AgentPaths;
|
|
60
62
|
}
|
|
61
63
|
/** Claude Code / Codex native hook event names. */
|
|
62
64
|
export type ClaudeCodeEvent = 'SessionStart' | 'InstructionsLoaded' | 'UserPromptSubmit' | 'PreToolUse' | 'PermissionRequest' | 'PostToolUse' | 'PostToolUseFailure' | 'Notification' | 'SubagentStart' | 'SubagentStop' | 'Stop' | 'TeammateIdle' | 'TaskCompleted' | 'ConfigChange' | 'WorktreeCreate' | 'WorktreeRemove' | 'PreCompact' | 'PostCompact' | 'Elicitation' | 'ElicitationResult' | 'SessionEnd';
|
|
@@ -128,6 +130,30 @@ export interface AgentRegistryEntry {
|
|
|
128
130
|
/** File paths to check for agent detection */
|
|
129
131
|
detectionPaths: (cwd: string, home: string) => string[];
|
|
130
132
|
}
|
|
133
|
+
/**
|
|
134
|
+
* Resolved paths for an agent at a given scope.
|
|
135
|
+
*
|
|
136
|
+
* Returned by `kit.resolvePaths()` and `resolveAgentPaths()`.
|
|
137
|
+
*/
|
|
138
|
+
export interface AgentPaths {
|
|
139
|
+
/** Absolute path to the agent config file (e.g. AGENTS.md, CLAUDE.md). */
|
|
140
|
+
configFile: string;
|
|
141
|
+
/** Absolute path to the hook directory. Only present when `toolName` is provided (or via kit.resolvePaths). */
|
|
142
|
+
hookDir?: string;
|
|
143
|
+
/** Absolute path to the agent settings file (e.g. settings.json). Only present for agents that use one (claude-code, codex). */
|
|
144
|
+
settingsFile?: string;
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* Options for the standalone `resolveAgentPaths()` function.
|
|
148
|
+
*/
|
|
149
|
+
export interface ResolveAgentPathsOptions {
|
|
150
|
+
/** Storage scope. Defaults to 'global'. */
|
|
151
|
+
scope?: StorageScope;
|
|
152
|
+
/** Required when scope is 'project'. */
|
|
153
|
+
projectRoot?: string;
|
|
154
|
+
/** Tool/kit name. Required to resolve hookDir. */
|
|
155
|
+
toolName?: string;
|
|
156
|
+
}
|
|
131
157
|
/**
|
|
132
158
|
* Map from MCP clientInfo.name to AgentType.
|
|
133
159
|
*/
|
package/build/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,UAAU,EAAE,aAAa,EAAE,UAAU,EAAE,OAAO,CAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,UAAU,EAAE,aAAa,EAAE,UAAU,EAAE,OAAO,CAAU,CAAC;AAyPrF;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAA8B;IACtD,QAAQ,EAAE,UAAU;IACpB,aAAa,EAAE,aAAa;IAC5B,qBAAqB,EAAE,UAAU;IACjC,kBAAkB,EAAE,OAAO;CAC9B,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAA0C;IACjE,QAAQ,EAAE;QACN,cAAc,EAAE,WAAW;QAC3B,gBAAgB,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,IAAI,6BAA6B;QAChE,iBAAiB,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,YAAY;QAC9C,UAAU,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,CAAC,GAAG,IAAI,2BAA2B;QACnE,cAAc,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC;YAC3B,GAAG,GAAG,gBAAgB;YACtB,GAAG,GAAG,iBAAiB;YACvB,GAAG,IAAI,iCAAiC;SAC3C;KACJ;IACD,aAAa,EAAE;QACX,cAAc,EAAE,WAAW;QAC3B,gBAAgB,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,IAAI,oBAAoB;QACvD,iBAAiB,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,YAAY;QAC9C,UAAU,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,GAAG,IAAI,kBAAkB,QAAQ,EAAE;QACnE,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,IAAI,wBAAwB;QAC1D,cAAc,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,GAAG,GAAG,YAAY,EAAE,GAAG,IAAI,oBAAoB,CAAC;KACnF;IACD,QAAQ,EAAE;QACN,cAAc,EAAE,WAAW;QAC3B,gBAAgB,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,IAAI,gCAAgC;QACnE,iBAAiB,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,YAAY;QAC9C,UAAU,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,GAAG,IAAI,oBAAoB,QAAQ,EAAE;QACrE,cAAc,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,GAAG,IAAI,0BAA0B,CAAC;KACtE;IACD,KAAK,EAAE;QACH,cAAc,EAAE,WAAW;QAC3B,gBAAgB,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,IAAI,mBAAmB;QACtD,iBAAiB,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,YAAY;QAC9C,UAAU,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,GAAG,IAAI,iBAAiB,QAAQ,EAAE;QAClE,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,IAAI,uBAAuB;QACzD,cAAc,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,GAAG,GAAG,qBAAqB,EAAE,GAAG,IAAI,qBAAqB,CAAC;KAC7F;CACJ,CAAC"}
|